Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JSF, utf8 i ćirilica

[es] :: Java :: JSF, utf8 i ćirilica

[ Pregleda: 3096 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mar8

Član broj: 240491
Poruke: 32
*.ptt.rs.



Profil

icon JSF, utf8 i ćirilica06.06.2010. u 21:58 - pre 169 meseci
Problem je sledeći:
Tabela u MySQL bazi ima podešen charset na utf8 i Collation na utf8_general_ci. Kada direktno preko MySQL Query Browsera unesem ćirilična slova, sve je OK.
Problem se javlja kada iz JSF aplikacije pomoću UPDATE upita upisujem u bazu. U Query Browser-u umesto slova prikaže ???.

Probavao sam kao u PHP-u da napravim upit:
String upit = "SET names 'utf8'";
stmt.executeQuery(upit);
ali se opet dešava ista stvar.

Zna li neko kako da ovo izvedem?
Hvala!

 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: JSF, utf8 i ćirilica07.06.2010. u 07:19 - pre 169 meseci
To trebas da postavis u connection stringu, nisam siguran kako ide, nesto tipa encodeing=UTF8, proguglaj malo.
Takođe, potrebno je da ti web strnice budu u utf8 cp.
 
Odgovor na temu

boske3

Član broj: 88800
Poruke: 24
*.piovoj.rs.

Sajt: www.bosanac.in.rs


Profil

icon Re: JSF, utf8 i ćirilica07.06.2010. u 07:47 - pre 169 meseci
Evo resenja :)

TEKST:

1. JSP stranice moraju biti ukljucene u header

<%@ page
contentType="text/html; charset=UTF-8"
%>

2. U catalina.bat (prica vazi za windows) ili catalina.sh (windows) mora se dodati jedna linija:

-Dfile.encoding=UTF-8


3. Potrebno je da se ukljuci jedna metoda za konverziju ISO-8859-1 u UTF-8.Nju koristi konstantno

/**
* Convert ISO8859-1 format string (which is the default sent by IE
* to the UTF-8 format that the database is in.
*/
public String toUTF8(String isoString)
{
String utf8String = null;
if (null != isoString && !isoString.equals(""))
{
try
{
byte[] stringBytesISO = isoString.getBytes("ISO-8859-1");
utf8String = new String(stringBytesISO, "UTF-8");
}
catch(UnsupportedEncodingException e)
{
// As we can't translate just send back the best guess.
System.out.println("UnsupportedEncodingException is: " +
e.getMessage());
utf8String = isoString;
}
}
else
{
utf8String = isoString;
}
return utf8String;
}

Ovo su tri kljucna koraka koja moras da uradis.

I na kraju jedna jako bitn stvar (bey ovoga sam i dalje imao problema sa UTF-8

U $CATALINA_HOME/conf/server.xml dodaj podrsku za UTF-8 konektor. Npr:

<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8"/>

Posle toga treba sve da radi kao sat :)
 
Odgovor na temu

mar8

Član broj: 240491
Poruke: 32
*.ptt.rs.



Profil

icon Re: JSF, utf8 i ćirilica07.06.2010. u 15:12 - pre 169 meseci
Nije mi jasno par stvari.
Je li ovo podesavanje za Tomcat? Server mi je glassfish, ali nije problem, mogao bih da pređem na Tomcat.
Našao sam Catalina.bat - smem li da dodam onu naredbu bilo gde ili mora na odredjeno mesto.
Gde da snimim ovu funkciju? Kako da je koristim svaki put - jel nakon što napravim konekciju, ili pre svakog upisa u bazu ili šta. U koju klasu da je stavim?

Bio bih ti puno zahvalan na pojašnjenju.
 
Odgovor na temu

boske3

Član broj: 88800
Poruke: 24
*.piovoj.rs.

Sajt: www.bosanac.in.rs


Profil

icon Re: JSF, utf8 i ćirilica08.06.2010. u 08:11 - pre 169 meseci
Upravo su podesavanja za Tomcat za Glassfish i ostale stvari pogledaj ovaj link

http://platform.xwiki.org/xwiki/bin/view/AdminGuide/Encoding

Takodje znam da se vrsi podesavanje u Glassfishu u sun-web.xml na sledeci nacin

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 8.0 Servlet 2.4//EN" "http://www.sun.com/software/su...ver/dtds/sun-web-app_2_4-0.dtd">

<sun-web-app>
<locale-charset-info default-locale="">
<locale-charset-map locale="" charset=""/>
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
</sun-web-app>

Probaj i ovo pa ces videti mada mislim da mozes UTF-8 u Glassfish-u podesiti kroz admin konzolu

Kada dodajes kod u catalina.bat moras da pazis gde ga stavljas -Dfile.encoding=UTF-8
jer on konfigurise podesavanja java vm pogledaj ceo fajl pa ces naci deo koji se odnosi na to.

 
Odgovor na temu

mar8

Član broj: 240491
Poruke: 32
*.ptt.rs.



Profil

icon Re: JSF, utf8 i ćirilica08.06.2010. u 22:33 - pre 169 meseci
Nije toliko važno za Glassfish - prešao sam na Tomcat 6.0.18. Uradio sam sve što si napisao ali i dalje imam problem jer neprestano dobijam ????.
Guglao sam po netu za -Dfile.encoding i ubacio sam ga ali nisam siguran da li je OK - imas li iz nekog projekta u kome si ovo koristio da vidis gde se tacno postavlja.

Isto me buni ova funkcija toUTF() - gde da je koristim. Je li u beanu u set() metodi kada prihvatam vrednost iz npr. formulara?
 
Odgovor na temu

boske3

Član broj: 88800
Poruke: 24
*.piovoj.rs.

Sajt: www.bosanac.in.rs


Profil

icon Re: JSF, utf8 i ćirilica09.06.2010. u 07:58 - pre 169 meseci
Nazalost nemam taj projekat , a sto se tice toUTF8 metode , ja sam licno napravio
UTF klasu sa metodom toUTF8(String s) koju pozivam kroz JSP kod
i prosledjujem neki string parametar na konveryiju ovoj metodi
a reyltat prikayujem na ekranu i upisujem u bazu.

NPR.
<body>
...
<%
...
String grupa = UTF.toUTF8(request.getParameter("grupa"));
%>

Odgovor je: <%=grupa%>
...
</body>
 
Odgovor na temu

mar8

Član broj: 240491
Poruke: 32
*.ptt.rs.



Profil

icon Re: JSF, utf8 i ćirilica09.06.2010. u 12:48 - pre 169 meseci
Ali i dalje mi nije jasno kako to da upotrebim na JSF stranici. Imam na primer formu i u okviru nje

<h:inputText value="#{registracijaBean.ime}"/>

Kako tu da uglavim poziv ove metode?
 
Odgovor na temu

[es] :: Java :: JSF, utf8 i ćirilica

[ Pregleda: 3096 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.