[ srleiqnet @ 25.02.2005. 17:36 ] @
Imam pitanje u vezi prikazivanja naših karaktera (ćčšđž) na JSP stranicama. Stringovi u Javi drže te karatere pravilno (pošto su Unicode), ali kada pokušam te Stringove da prikažem na JSP stranici, nisu prikazani pravilno. Stavio sam sledeće u JSP:
Code:
<%@ page contentType="text/html;charset=iso-8859-2"%>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<% request.setCharacterEncoding("iso-8859-2");%>


U servletu (handleru) koji poziva taj JSP stavio sam:
Code:
request.setCharacterEncoding("iso-8859-2");
response.setContentType("text/html; charset=iso-8859-2");


E sada, našao sam na ovom forumu [url]http://www.elitesecurity.org/poruka/430313[/url] da je čovek imao sličan problem, samo pri upisivanju u bazu. I rešenje je bilo da se svaki String eksplicitno konvertuje ovako:
Code:
String str = new String(someString.getBytes("8859_1"), "utf-8");


Ja sam probao razne kombinacije, utf-8 ne pomaže uopšte, najbliži sam željenom rezultatu kada koristim:
Code:
<%=new String(myString.getBytes(), "iso-8859-2")%>

prikaže OK karaktere đćč, ali ne i žš

Kada koristim:
Code:
<%=new String(myString.getBytes("iso-8859-2"), "iso-8859-2")%>

situacija je obrnuta, prikaže ok karaktere žš, ali ne i đćč

Moje pitanje je, koja je dobitna kombinacija da bi se sva naša slova pojavila OK na JSP stranici? Malo me plaši i ovo što sam pročitao na Sun-ovom forumu, da prebacivanje sa Unicode može dovesti do gubitka informacija [url]http://forum.java.sun.com/thread.jspa?forumID=45&threadID=81060[/url] .

Pozdrav, Srle.
[ NikolaVeber @ 01.03.2005. 19:19 ] @
Najjednostavnije bi bilo da ti stranica bude utf-8 enkodirana. Time izbegavas sve konverzije stringova.
[ tweeester @ 02.03.2005. 11:34 ] @
vidi ovo:

http://www.javasvet.net/forumTopicView.do?tid=69
[ srleiqnet @ 03.03.2005. 20:40 ] @
Hvala vam obojci na odgovorima.
tweeester, to je kopija poruke koju sam ja naveo u mojoj, ta osoba je postavila isto pitanje na par foruma.
Nikola, u pravu si to za utf-8, ja sam inicijalno mislio da je za prikazivanje Srpskih slova neophodno da charset bude iso-8859-2. Ispostavilo se da String koji ja koristim i šaljem JSP-u ipak nije dobrog formata, a zavelo me je to što se prikaže ok kada ga System.out.println-ujem? To još ne kapiram zašto, moguće je da je svoje prljave prste tu umešao i JDeveloper-ov encoding. Moj problem je negde na liniji Oracle/JDBC/Java, i to ću morati malo dublje da pogledam. Uglavnom, promašio sam temu, komunikacija izmedju Jave i JSP funkcioniše, tačnije ono što sam dobijao od Oracle baze se prikazivalo i na JSP-u, ako ne budem uspeo ovo da rešim postaviću novu temu.
Pozdrav, Srle.
[ srleiqnet @ 11.03.2005. 22:23 ] @
Izvinite što bump-ujem temu bezveze, ali sam mislio da je završim sa rešenjem do kojeg sam došao (da ne bude totalno gubljenje vremena za nekog ko dodje pretragom do nje).

Problem je bio što je Oracle baza na serveru imala charset WE8MSWIN1252 , i naši karakteri su dolazili u "čudnom" obliku. Bili su prikazani OK u Oracle Forms-ima, prevodjenje je pretpostavljam išlo preko SQLNeta. Rešio sam problem tako što sam dobijene String-ove zamenjivao char po char, a isto sam to radio, samo naravno u obrnutom smeru, i za upisivanje u bazu. Promeniću ovu sadašnju metodu da koristim regex paket, ali u principu to je to. Kao što sam rekao i u prethodnom postu, ovo je sve problem na relaciji Oracle-JDBC-Java i nazad, izmedju Jave i JSP-a sve se razmenjuje OK (koristeći UTF-8).