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
Надявам се да съм бил полезен.
pgpwjfXnEUtOG.pgp
Description: PGP signature
