08/03: Naša слова?
Kategorija: Tehnologije
Poslao: gonadarian

Kako ovo sve podesiti se može lako izguglati, ali ima toliko mesta koje čekaju sve ŠćЂжЧove sa željom da ih samelju u, recimo, Šc???, da je pobrojavanje zamki na jednom mestu veoma korisno. I sam sam večinu ovih rešenja više puta tražio i nepotrebno gubio vreme. Ako neko ima dodatak - neka komentariše pa da proširim listu, ili ako ima dobar link ka sličnom tekstu neka mi pošalje, jer tako nešto nisam našao...
Ako se u samom java kodu ili na JSP stranici nalaze ŠćЂжЧovi neophodno je kompajleru reći da su sorceovi u unicode formatu opcijom
javac -encoding UTF-8.
Ako se radi sa bazom, moguće je da će biti neophodna modifikacija connection stringa sledećim parametrima
jdbc:mysql://localhost....?useUnicode=true&characterEncoding=utf8
Naravno, svaki html mora imati odgovarajući meta tag, a xml instrukciju:
html: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
xml: <?xml version="1.0" encoding="UTF-8"?>
Za servlete takođe postoji neophodno podešavanje outputa sa akcentom na redosled komandi i podešavanje inputa (form submit vrednosti):
input: request.setCharacterEncoding("UTF-8");
output: response.setContentType("text/html;charset=UTF-8");
out = response.getWriter();
Tapestry je simpatičan. On je po defaultu podešen na utf-8. Odlično pomislih - i tu pogreših... Jeste output, ali input nije! Template i property fajlove čita po defaultu u ISO-8859-1 stilu, pa se to ponašanje menja u web.xml fajlu za ApplicationSerlvet:
<init-param>
<param-name>org.apache.tapestry.template-encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>org.apache.tapestry.messages-encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
NetBeansov editor koda se podešava na sledećem mestu:
Tools /Options /Editing /Java Sources /Default Encoding = utf-8
*.property fajlovi su po JLSu zakucani na ISO-8859-1 + unicode escape karaktere (\uxxxx), pa se po defaultu i IDE okruženja ponašaju tako ograničeno (i Eclipse i NetBeans su svesni ovoga - i opušteno kuliraju). Doduše, za Eclipse postoje pluginovi koji zamenjuju postojeći property editor (npr ResourceBundle Editor). Uglavnom, sva rešenja koriste u pozadini native2ascii.exe program koji dolazi uz javu i radi konverziju unicode <-> ISO-8859-1 + unicode escape.
...
Ivan napisao:
jesi li probao ovo:
request.setCharacterEncoding("UTF-8");
Meni ovo ne radi nigde kako treba, pa cisto da piptam zasto. Mozda ne znam da ga koristim kako treba :)