Re: lug-bg: Java Jsp i MySql
- Subject: Re: lug-bg: Java Jsp i MySql
- From: Todor Petkov <zakk@xxxxxxxxx>
- Date: Wed, 12 Jul 2006 09:40:21 +0300
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
- Organization: Bulgaria Online
On 7.7.2006 11:41, Борислав Данаилов wrote:
> Здравейте, знам че в тази група има хора които биха могли да ми
> помогнат, затова ще изпратя съобщението си. Знам че не е линукс
> адресирано, затова ви се извинявам предварително.
Един колега подкара jakarta 4.1.19 с mysql 4.1.15 по следния начин:
=========================
UTF-8 in POST Requests to Tomcat 4
Тъй като POST заявката не съдържа в себе си информация за encoding на данните
(вкл. и за encoding на страницата, от която идват), то при изпращане на данни
с POST заявка към Tomcat 4, той по подразбиране третира данните като кодирани
с ISO-8859-1.
Описание на проблема:
Двубайтовите данни се третират като еднобайтови; в резултат нищо освен
латиница не се интерпретира вярно.
Специфични условия:
Tomcat версия 4, възможно е сходен проблем да има и при версия 5. Показаното
решение не изисква достъп до конкретен source файл на готовото приложение
(там са възможни други решения посредством string...getBytes), а действа на
ниво виртуален хост.
Решение на проблема:
Тъй като Tomcat 4 няма вградени филтри, първо се инсталират dbForms. (При
Tomcat 5 е възможно да се ползва вграденият клас
filters.SetCharacterEncodingFilter)
В съответния web.xml е необходимо е да се дефинира филтър, който да обърне
символите от ISO-8859-1 в UTF-8:
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>org.dbforms.util.external.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
Веднага след дефиницията се описва приложението на филтъра - за всички
изпратени символи:
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Накрая се рестартира Tomcat.
=========================
В директорията с файловете на съответната база се създава файл db.opt със
съдържание:
default-character-set=utf8
default-collation=utf8_general_ci
Надявам се да съм бил полезен.
Attachment:
pgpc15qvDIAhN.pgp
Description: PGP signature
|