Van egy java program, ami mySQL-be dolgozik.
Ha a karakterkészlet mindenhol UTF-8, jól is működik.
Windows alatt viszont Cp1250 lesz, és így már nem tudok ékezetes stringeket beszúrni az adatbázisba.
Ha -Dfile.encoding=UTF-8 paraméterrel indítom, akkor jó lesz. Azt szeretném elérni, hogy ez a paraméter ne kelljen.
Próbálkoztam a
System.setProperty("file.encoding", "UTF-8");
hívással, de ezzel csak azt értem el, hogy a System.getProperty azt adja vissza, amit én szeretnék, de nem működött jól.
Meg lehet ezt valahogy oldani?
Köszönöm.
- 1311 megtekintés
Hozzászólások
Tipp: JDBC connection string vegere characterEncoding=UTF-8 es esetleg useOldUTF8Behavior=true?
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Sajnos egyik sem oldja meg a problémát.
- A hozzászóláshoz be kell jelentkezni
Es ha utf-8 helyett a windows encodingjat allitod be?
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Sajnos ez sem oldotta meg a problémát.
- A hozzászóláshoz be kell jelentkezni
A helyedben belenéznék a mySql connector kódjába, hátha megtalálható hogy hogyan állítja be a kódolást. Ha meg nem, akkor átírod és kész.
- A hozzászóláshoz be kell jelentkezni
Szerintem ennél azért egyszerűbb a Windowsosoknak mellékelni egy parancsikont is, ami már felparaméterezve indítja.
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy egyszerűbb, de ha elkezdenek gyűlni az ilyenfajta hekkek egy rendszerben, abból a végén mindig baj van. A driver meg egyértelműen hibás, ha a locale értéktől függ a működése, ki kellene javítani. Amúgy a locale függő API-kat eleve jobb lenne betiltani :-).
- A hozzászóláshoz be kell jelentkezni
Ezt a system.setproperty erteket hol allitod be egyebkent a kodban? Az ilyennek az elso par sorban meg kell hivni, a legjobb, ha a main fuggveny nyitasa utan kozvetlen van, mert eleg sokmindenre hatassal van.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
A system.setProperty-vel elvben felül tudsz írni "környezeti változót" amit a "-D"-vel adtál meg.
Azt tudom elképzelni, hogy azért nem működik, mert a programrész ami használja a file.encoding változó értékét, már kiolvasta mielőtt te átállítottad volna és a régi értéket használja.
- A hozzászóláshoz be kell jelentkezni
Nekem is ez a gyanum, jo lenne valami konkret kod a beallitasrol...
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Hát, nem én reagálok a leggyorsabban (bocs)
A main legelső utasítása volt.
- A hozzászóláshoz be kell jelentkezni
"Azt szeretném elérni, hogy ez a paraméter ne kelljen."
Barátságos kis paraméter, miért kell eltüntetni? :)
- A hozzászóláshoz be kell jelentkezni