Małgorzata Surma

Małgorzata Surma Analityk, Trener,
Programista.

Temat: Polskie znaki w serwletach

Witam,

mam problem z polskimi znakami w serwletach. W jsp ustawiam <%@page language="Java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
W web.xml:
<filter>
<filter-name>Character Encoding Filter</filter-name>
<filter-class>pl.jdn.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Character Encoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

Kodowanie bazy jest ustawione na UTF-8.

Tymczasem do controlera przekazuje jakieś krzaki zamiast polskich znaków. Kodowanie w eclipse jest też ustawione na UTF-8.
Gdzie i co powinno jeszcze być ustawione?Małgorzata Surma edytował(a) ten post dnia 26.02.09 o godzinie 21:34
Maciej Nowicki

Maciej Nowicki Java Developer

Temat: Polskie znaki w serwletach

Jeżeli przesyłasz parametry GET'em, sprawdź jeszczę konfigurację Tomcata i parametry URIEncoding i useBodyEncodingForURI

http://tomcat.apache.org/tomcat-6.0-doc/config/http.html
Małgorzata Surma

Małgorzata Surma Analityk, Trener,
Programista.

Temat: Polskie znaki w serwletach

A jeśli i to nie pomogło?
Michał Rojek

Michał Rojek Programista J2EE,
CoreTeam

Temat: Polskie znaki w serwletach

Spróbuj może w servlecie wymusić kodowanie na reuescie np.
request.setCharacterEncoding("UTF-8")
Krzysztof K.

Krzysztof K. Experienced Software
Engineer

Temat: Polskie znaki w serwletach

Jestes pewna ze ta implementacja dziala poprawnie? Zdebuguj i sprawdz w doFilter() czy rzeczywiscie w parametrach respons'a masz ustawione:

"UTF-8" w characterEncoding
lub(i)
"text/html; charset=UTF-8" w contentType

BTW. Proponuje uzycie filtra od "Spring'a" org.springframework.web.filter.CharacterEncodingFilterKrzysztof K. edytował(a) ten post dnia 27.02.09 o godzinie 22:24
Mariusz Lewandowski

Mariusz Lewandowski Senior Java
Developer

Małgorzata Surma

Małgorzata Surma Analityk, Trener,
Programista.

Temat: Polskie znaki w serwletach

Dziękuję za pomoc.

Mimo, że ustawiałam kodowanie w bazie, to w mysqlu zostawało stare. Przestawiłam na postgresa i chodzi;)
Piotr Wierzbowski

Piotr Wierzbowski IT Architect, Asseco
Poland S.A.

Temat: Polskie znaki w serwletach

Małgorzata Surma:
Mimo, że ustawiałam kodowanie w bazie, to w mysqlu zostawało stare.
Cokolwiek masz przez to na myśli ;).
Opis błędu delikatnie mówiąc nie naprowadza na rozwiązanie :p.
MySQL to straszna chała, ale w czasie studiów trafił mi się podobny kwas i rozwiązałem go ustawiając kodowanie również w JDBC (a nie tylko w bazie danych).
Czy mogłabyś dla próby sprawdzić (debuggerem czy z bazy danych idzie coś bez krzaczków) czy taki url w połaczeniu:
Example:
String URL = "jdbc : mysql : //localhost/MyDatabase&characterEncoding=UTF-8"; (skasuje spacje w urlu)
lub jakikolwiek inny sposób z sygnalizowaniem jakie kodowanie będziesz mieć po stronie javy?Piotr Wierzbowski edytował(a) ten post dnia 03.03.09 o godzinie 23:12

Następna dyskusja:

Polskie znaki, servlet gene...




Wyślij zaproszenie do