argon bulletin board

Факултети => Факултет по математика и информатика => Темата е започната от: tedinka в 15.04.2008, 14:26:34

Титла: Tomcat encoding???
Публикувано от: tedinka в 15.04.2008, 14:26:34
Може ли малко помощ?Пиша дипломна,ползвам jsp-та и по-специално jstl.Всички jsp-та с енкодинг utf-8,базата ми е Mysql-всички таблици и колоните са utf-8. Когато въведа директно през базата  нещо на кирилица ОК няма проблеми,но когато през web въвеждам се появява маймуница.
Мисля,че проблема е в Tomcata? Правих всякакви опити за смяна на енкодинга, но нищо не става,последно в Apache Software Foundation\Tomcat 5.5\conf\server.xml  добавих
 <Connector  port="8080"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true"
            URIEncoding="UTF-8"
            />
И пак не става...:(
Някой има ли идея за какво става така и къде е проблема?
Титла: Re: Tomcat encoding???
Публикувано от: Светослав Енков в 15.04.2008, 14:41:21
Не е толкоз простичко!

Виж все пак тук: http://cagan327.blogspot.com/2006/05/utf-8-encoding-fix-tomcat-jsp-etc.html
и тук http://cagan327.blogspot.com/2006/05/utf-8-encoding-fix-for-mysql-tomcat.html

Все пак аз не ползвам Tomcat, но това ми се видя доста подробно и смислено и проверено обяснение на проблема!
Титла: Re: Tomcat encoding???
Публикувано от: tedinka в 15.04.2008, 14:55:52
да и с филтри опитах,  но не става :(
Благодаря все пак :)
Титла: Re: Tomcat encoding???
Публикувано от: Светослав Енков в 15.04.2008, 15:07:22
Прочете ли и двете неща задълбочено? Питай някой джаваджия - като Найденчо!
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 15.04.2008, 15:08:07
специално пък при мен имам гледам там 1вия пост енков който е пратил имам MySQL UTF8 база и страниците са ми UTF8 както и ти се изрази и използвам баш Stripes Framework и всичко си работи :)
ето примерна страница
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<stripes:layout-definition>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
Съответно нямам никакви промени никъде и всичко си работи както казах всичко по страниците е на UTF8... теди ако искаш я пастени всичко или дай да го видим проекта няма проблем при мен имам tomcat и UTF8 MySQL база.

Едно време си спомням в Struts имаше подобен проблем и там слагахме в всяка форма следния метод :
public void reset(ActionMapping mapping, HttpServletRequest request)
  {
    try
    {
      request.setCharacterEncoding("UTF-8");
    }
    catch (UnsupportedEncodingException ex)
    {
      ex.printStackTrace();
    }
  }
и така работеше.

Онзи URIENcoding за томкет не ти е нужен. В моя случай ползвам JPA+Hibernate та може той да се оправя с бозите и не сейвам директно. Ако записваш директно кажи какъв ти е String-а за връзка с базата трябва да е for example:

url="jdbc:mysql://localhost:3306/{database name}?autoReconnect=true&useEncoding=true&characterEncoding=UTF-8"
пишеше го в сайтовете на енков не е тестван при мен, ама като го гледам по спомени правилно е написан.
Титла: Re: Tomcat encoding???
Публикувано от: tedinka в 15.04.2008, 15:20:21
ето я връзката с базата,ама при мен е по гадно.нали ползвам jstl  :evil:
но ще пробвам,това,което си написал                              
<sql:setDataSource
                                 var="datasource"
                                 driver="com.mysql.jdbc.Driver"
                                 url="jdbc:mysql://localhost:3306/diplomnadb"
                                 user="root"
                                 password=""
                           />

а ето и  в самото jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<link href="main.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>админ панел</title>
</head>
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 15.04.2008, 15:23:18
блякс
я проай само URL-то да го напишеш :
     url="jdbc:mysql://localhost:3306/diplomnadb?autoReconnect=true&useEncoding=true&characterEncoding=UTF-8"

за опит.
Титла: Re: Tomcat encoding???
Публикувано от: tedinka в 15.04.2008, 15:24:44
                              <sql:setDataSource
                                 var="datasource"
                                 driver="com.mysql.jdbc.Driver"
                                 url="jdbc:mysql://localhost:3306/diplomnadb?autoReconnect=true&useEncoding=true&characterEncoding=UTF-8"
                                 user="root"
                                 password=""
                           />


ето и отново маймуница  :evil: :evil: :evil:
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 15.04.2008, 15:26:33
тука пише че така се фиксва :
http://forum.java.sun.com/thread.jspa?threadID=697147&messageID=4049519
:)
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 15.04.2008, 15:27:06
                              <sql:setDataSource
                                 var="datasource"
                                 driver="com.mysql.jdbc.Driver"
                                 url="jdbc:mysql://localhost:3306/diplomnadb?autoReconnect=true&useEncoding=true&characterEncoding=UTF-8"
                                 user="root"
                                 password=""
                           />


ето и отново маймуница  :evil: :evil: :evil:

къде я виждаш тая маимуница ? като отвориш базата с mYSQL Query Browser кво пише в въпросните колони ?
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 15.04.2008, 15:29:06
бтв първо на първо тука в твоята страница виждам някакви гомна че е от тях ама като нищо
<title>админ панел</title>подозирам и на доло по страницата си писала на cp1251 а не само на title като му кажеш UTF8 моля те пиши на UTF8. Файла ти в момента е с един господ знае какъв енкодинг.
Титла: Re: Tomcat encoding???
Публикувано от: tedinka в 15.04.2008, 15:39:27
охххххххххххххххххххххххх.... :evil:
и в mysql query browser е маимуница и всякаккъв вид джагатайски знаци:(
бтв. не ми се карай найдене ;)
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 15.04.2008, 15:40:17
охххххххххххххххххххххххх.... :evil:
и в mysql query browser е маимуница и всякаккъв вид джагатайски знаци:(
бтв. не ми се карай найдене ;)
от къде знаеш че базата ти е UTF8 ?
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 15.04.2008, 15:40:53
стартирай го от конзола с --default-character-set=utf8
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 16.04.2008, 09:58:41
да приемем че проработи ?
Титла: Re: Tomcat encoding???
Публикувано от: tedinka в 16.04.2008, 10:30:12
ми не... :cry:
де да работеше...
Титла: Re: Tomcat encoding???
Публикувано от: JOKe в 16.04.2008, 10:51:47
дай проекта + script-а за базата.
Титла: Re: Tomcat encoding???
Публикувано от: deviser в 16.04.2008, 12:51:08
Теди провери си енкодинга на полетата в базата.
При MySQL много често въпреки че таблицата е сетната за даден енкодинг, полетата в нея са за друг.
Предполагам че в твоя случаи вътре са на 'latin 1' и от там ти идва проблема.