Java Virtual Machine - nastavenie znakovej sady

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
di@blik
Nový používateľ
Nový používateľ
Príspevky: 131
Dátum registrácie: Ut 21. Apr, 2009, 09:26
Bydlisko: Žilina

Java Virtual Machine - nastavenie znakovej sady

Príspevok od používateľa di@blik »

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
faugusztin
Moderátor
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

Príspevok od používateľa faugusztin »

Musis pouzit pri spusteni JVM parameter :

Kód: Vybrať všetko

-Dfile.encoding=UTF8
Teda napriklad :

Kód: Vybrať všetko

java -Dfile.encoding=UTF8 sk.zoznam.pretaktovanie.Priklad
Používateľov profilový obrázok
di@blik
Nový používateľ
Nový používateľ
Príspevky: 131
Dátum registrácie: Ut 21. Apr, 2009, 09:26
Bydlisko: Žilina

Re: Java Virtual Machine - nastavenie znakovej sady

Príspevok od používateľa di@blik »

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.
faugusztin
Moderátor
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

Príspevok od používateľa faugusztin »

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)
Používateľov profilový obrázok
di@blik
Nový používateľ
Nový používateľ
Príspevky: 131
Dátum registrácie: Ut 21. Apr, 2009, 09:26
Bydlisko: Žilina

Re: Java Virtual Machine - nastavenie znakovej sady

Príspevok od používateľa di@blik »

Tak nakoniec s pomocou som dospel k takémuto riešeniu.
Napr. pre komponentu jTextField:

Kód: Vybrať všetko

this.jTextField1.setText(new String(zobrazovanyString.getBytes(), "utf-8"));
Týmto spôsobom zobrazím čokoľvek.
Vďaka za ochotu a pomoc.

Návrat na "Programovanie"