TomCat od verze tusim 5.5 ma jednu "ficurku", (kterou ja osobne povazuji za bug, ale vyvojari TomCatu ji povazuji za vyhodu), ze parametry predavane v URL (tedy metodou GET nebo pri POST explicitne v URL) jsou *vzdy* brany jako v kodovani iso-8859-1 a volani request.setCharacterEncoding() na ne nema vliv.
Pokud si tedy ten parametr predavate pres URL,
je to touhle bugficurkou.
Da se to opravit zmenou souboru conf/server.xml, kde musite pridat
do prislusneho tagu <Connector> atribut
useBodyEncodingForURI="true"
Naopak pridani -Dfile.encoding=UTF-8 pri startu TomCatu by nemelo
mit zadny vliv, protoze to nastavuje default kodovani pro
tridy String a tridy v baliku java.io.*, ale to se
pri parsovani HTTP requestu nepouziva.
Makub
Ivan Polák wrote:
> Problem som odstranil, ale ako som predpokladal, "poskodenu" diakritiku
> vracala uz funkcia request.getParameter(), teda:
>
> 1. pouzil som filter s nastavenim UTF-8
> 2. nastavil som freemarker: config.setDefaultEncoding("UTF");
> config.setOutputEncoding("UTF-8");
> 3. FTL sablony pre freemarker su v UTF-8 kodovani
> 4. filter sa vykonava
> 5. stranka v info o stranke ma kodovanie UTF-8
> 6. ci je tam meta-tag nie je podstatne
> 7. pri spracovani request-u request.getCharacterEncoding() dava "UTF-8"
> 8. stranka zobrazujuca vysledok ma tiez kodovanie UTF-8
>
> Ale za zaklade googlovania som nasiel popis jednej chyby, ktora sa vyskytuje
> v tomcat-e.
>
> Napr.
> http://mail-archives.apache.org/mod_mbox/tomcat-users/200409.mbox/%3C5732322
> [EMAIL PROTECTED]
>
> kde musim retazec dostavat nasledovnym prikazom:
>
> new String(request.getParameter("user").getBytes("ISO-8859-1"),"UTF-8");
>
> este dodam, ze sa jedna o konfiguraciu tomcat-u, do ktorej nemozem
> zasahovat, takze pridat nieco ako -Dfile.encoding=UTF-8 pri spustrani
> tomcat-u nemozem.
>
> Aplikacia funguje, ale riesenie sa mi nepozdava.
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
