Ahojte,
už dlhšie riešim jeden problém. Mám GUI aplikáciu v Jave, v ktorej načítavam textové súbory. Textové súbory sú uložené v kódovaní UTF-8. V týchto textových súboroch sú uložené aj špeciálne znaky ako napr. Φ, °, ...
A tu nastáva kameň úrazu. JVM používa znakovú sadu podľa lokalizácie Windowsu v mojom prípade cp1250, čo je znaková sada pre strednú a východnú Európu a táto znaková sada neobsahuje znaky ako Φ, °, ...
JVM sa teda snaží súbory kódovať do cp1250, čoho výsledkom je to, že namiesto požadovaných znakov sa zobrazujú nežiadúce.
Zaujímavé je to, že keď pustím túto aplikáciu v netbeanse tak JVM používa UTF-8 a všetko ide tak ako má.
Vedel by mi niekto poradiť ako prinútiť JVM aby kódovala v UTF-8 a nie v znakovej sade podľa Windowsu?
Dík
Java Virtual Machine - nastavenie znakovej sady
-
- Moderátor
- Príspevky: 15054
- Dátum registrácie: Ut 26. Feb, 2008, 14:00
- Bydlisko: Bratislava/Štúrovo
Re: Java Virtual Machine - nastavenie znakovej sady
Musis pouzit pri spusteni JVM parameter :
Teda napriklad :
Kód: Vybrať všetko
-Dfile.encoding=UTF8
Kód: Vybrať všetko
java -Dfile.encoding=UTF8 sk.zoznam.pretaktovanie.Priklad
Re: Java Virtual Machine - nastavenie znakovej sady
A kde by som mal použiť tento parameter resp., kde ho mám vložiť? Niekde do Project Properties?
Tejto časti "sk.zoznam.pretaktovanie.Priklad" nerozumiem. Prečo potrebujem nejaký ďalší argument keď potrebujem nastaviť kódovanie JVM ako celku.
Tejto časti "sk.zoznam.pretaktovanie.Priklad" nerozumiem. Prečo potrebujem nejaký ďalší argument keď potrebujem nastaviť kódovanie JVM ako celku.
-
- Moderátor
- Príspevky: 15054
- Dátum registrácie: Ut 26. Feb, 2008, 14:00
- Bydlisko: Bratislava/Štúrovo
Re: Java Virtual Machine - nastavenie znakovej sady
Toto bolo myslene ako parameter pri spusteni danej instancie JVM. Default si riesi JAVA sama, to podla mojich vedomosti nezmenis. Mozes to zmenit cez parameter pri spusteni JVM (vid vyssie) alebo nespoliehat sa na kodovanie OS a riesit kodovanie sam v ramci prace s retazcami - v tvojom pripade napriklad ak pouzivas InputStreamReader tak pouzijes specialny konstruktor, kde zadas nazov kodovej stranky :
http://download.oracle.com/javase/6/doc ... reamReader(java.io.InputStream, java.lang.String)
http://download.oracle.com/javase/6/doc ... reamReader(java.io.InputStream, java.lang.String)
Re: Java Virtual Machine - nastavenie znakovej sady
Tak nakoniec s pomocou som dospel k takémuto riešeniu.
Napr. pre komponentu jTextField:
Týmto spôsobom zobrazím čokoľvek.
Vďaka za ochotu a pomoc.
Napr. pre komponentu jTextField:
Kód: Vybrať všetko
this.jTextField1.setText(new String(zobrazovanyString.getBytes(), "utf-8"));
Vďaka za ochotu a pomoc.