Java Desktop Application - kódovanie
-
pitbullko
Light Star
- Príspevky: 294
- Registrovaný: 13 nov 2009, 8:19
- Bydlisko: „Keby som bol postavený pred rozhodnutie medzi zbabelosťou a násilím, zvolil by som násilie“[Gandhi]
Java Desktop Application - kódovanie
Ahojte,
chcem vás poprosiť o pomoc. Už druhý deň sa trápim s problémom kódovania.
Jedná sa o to, že som načítal staré *.dbf súbory pomocou knižnice cez konzolovú aplikáciu a uložil som ich do *.txt súborov.
Tieto *.txt súbory sú uložené v UTF-8. Pôvodné súbory *.dbf boli pravdepodobne v kódovaní ISO8859. V nových *.txt súboroch, keď ich otvorím v notepade sú už špeciálne znaky ako napr. Φ, °, ... nahradené inými symbolmi resp., písmenami. Prvý problém je, keď spustím desktopovú aplikáciu vo swingu cez netbeans tak znaky z *.txt súborov sa zobrazujú inak ako keď si vytvorím spustiteľnú *.jar aplikáciu a tú spustím priamo vo Windowse.
Keď som hľadal na internete, tak som našiel, že JVM sa snaží kódovať do defaultného kódovania systému, čo je v mojom prípade UTF-8 ale vnútorne by mala Java pracovať s Unicode. Ja som tieto vymenené znaky v txt súbore nahradil dobrými ale zobrazili sa dobre iba keď som spustil aplikáciu cez netbeans.
Vedel by mi niekto poradiť ako tam tie znaky dostať, aby sa zobrazovali správne aj keď to bude spustiteľná aplikácia pod Windowsom?
Dík
chcem vás poprosiť o pomoc. Už druhý deň sa trápim s problémom kódovania.
Jedná sa o to, že som načítal staré *.dbf súbory pomocou knižnice cez konzolovú aplikáciu a uložil som ich do *.txt súborov.
Tieto *.txt súbory sú uložené v UTF-8. Pôvodné súbory *.dbf boli pravdepodobne v kódovaní ISO8859. V nových *.txt súboroch, keď ich otvorím v notepade sú už špeciálne znaky ako napr. Φ, °, ... nahradené inými symbolmi resp., písmenami. Prvý problém je, keď spustím desktopovú aplikáciu vo swingu cez netbeans tak znaky z *.txt súborov sa zobrazujú inak ako keď si vytvorím spustiteľnú *.jar aplikáciu a tú spustím priamo vo Windowse.
Keď som hľadal na internete, tak som našiel, že JVM sa snaží kódovať do defaultného kódovania systému, čo je v mojom prípade UTF-8 ale vnútorne by mala Java pracovať s Unicode. Ja som tieto vymenené znaky v txt súbore nahradil dobrými ale zobrazili sa dobre iba keď som spustil aplikáciu cez netbeans.
Vedel by mi niekto poradiť ako tam tie znaky dostať, aby sa zobrazovali správne aj keď to bude spustiteľná aplikácia pod Windowsom?
Dík
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: Java Desktop Application - kódovanie
ked tvoris OutputStreamWriter tak mas v jednom z konstruktorov moznost menit kodovanie
http://download.oracle.com/javase/1.4.2 ... riter.html
je to treti konstruktor - a pouiziva sa to asi takto new OutputStreamWriter (new FileOutputStream(new File(path)),"UTF8");
google pomoze viac
http://download.oracle.com/javase/1.4.2 ... riter.html
je to treti konstruktor - a pouiziva sa to asi takto new OutputStreamWriter (new FileOutputStream(new File(path)),"UTF8");
google pomoze viac
-
pitbullko
Light Star
- Príspevky: 294
- Registrovaný: 13 nov 2009, 8:19
- Bydlisko: „Keby som bol postavený pred rozhodnutie medzi zbabelosťou a násilím, zvolil by som násilie“[Gandhi]
Re: Java Desktop Application - kódovanie
to už som skúšal. Ja ten znak proste neviem zobraziť. Textové súbory sú kódované v UTF-8, napíšem tam znak Φ.
Tento znak sa mi však vypíše správne iba keď aplikáciu spustím cez netbeans. Je to desktopová aplikácia keď ju pustím vo Windowse kde mám kódovanie UTF-8, už je znak nesprávny.
Ja už fakt netuším, ako keby to kódovalo v niečom inom keď to spustím priamo vo Windowse.
Tento znak sa mi však vypíše správne iba keď aplikáciu spustím cez netbeans. Je to desktopová aplikácia keď ju pustím vo Windowse kde mám kódovanie UTF-8, už je znak nesprávny.
Ja už fakt netuším, ako keby to kódovalo v niečom inom keď to spustím priamo vo Windowse.
- Prílohy
-
- Aplikácia spustená cez netbeans
- screen_1.jpg (8.29 KiB) 609 zobrazení
-
- Aplikácia spustená vo windowse
- screen_2.jpg (8.12 KiB) 609 zobrazení
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: Java Desktop Application - kódovanie
Skor by som povedal ze sa to sprava ako ina lokalizacia UTF8... zmysel UTF8 je totiz natlacit vsetky pouzivane znaky do 8-bitov, takze netbeans vyuzivali UTF8-en a windows UTF8-sk
bud pouzi ine kodovanie (UTF 16) alebo neakym sposobom nadefinuj to UTF8-en - google mi velmi nepovedal a casu velmi vela nemam...
bud pouzi ine kodovanie (UTF 16) alebo neakym sposobom nadefinuj to UTF8-en - google mi velmi nepovedal a casu velmi vela nemam...
-
pitbullko
Light Star
- Príspevky: 294
- Registrovaný: 13 nov 2009, 8:19
- Bydlisko: „Keby som bol postavený pred rozhodnutie medzi zbabelosťou a násilím, zvolil by som násilie“[Gandhi]
Re: Java Desktop Application - kódovanie
... skúsim, dám vedieť. Zatiaľ dík
//autoeditácia príspevku (16 Jún 2011, 9:32)
Skúšal som nejaké ďalšie veci. javatar mal si pravdu, JVM používa znakovú sadu, podľa windowsu, resp. lokalizácie.
Zistil som, že v netbeanse je kódovanie UTF8 a windows používa znakovú sadu cp1250. Súbory sú UTF8, preto mi to šlo v netbeanse bez problémov.
Problém je vo windowse, pretože JVM sa snaží kódovať znaky do cp1250, čo je znaková sada pre strednú a východnú Európu a táto znaková sada neobsahuje znaky ako Φ, °, ...
Problém je ten, že zatiaľ neviem ako mám prinútiť JVM aby nepoužívala kódovanie Win ale napr. UTF8.
//autoeditácia príspevku (16 Jún 2011, 9:32)
Skúšal som nejaké ďalšie veci. javatar mal si pravdu, JVM používa znakovú sadu, podľa windowsu, resp. lokalizácie.
Zistil som, že v netbeanse je kódovanie UTF8 a windows používa znakovú sadu cp1250. Súbory sú UTF8, preto mi to šlo v netbeanse bez problémov.
Problém je vo windowse, pretože JVM sa snaží kódovať znaky do cp1250, čo je znaková sada pre strednú a východnú Európu a táto znaková sada neobsahuje znaky ako Φ, °, ...
Problém je ten, že zatiaľ neviem ako mám prinútiť JVM aby nepoužívala kódovanie Win ale napr. UTF8.
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: Java Desktop Application - kódovanie
v akej komponente zobrazujes ten text?
-
pitbullko
Light Star
- Príspevky: 294
- Registrovaný: 13 nov 2009, 8:19
- Bydlisko: „Keby som bol postavený pred rozhodnutie medzi zbabelosťou a násilím, zvolil by som násilie“[Gandhi]
Re: Java Desktop Application - kódovanie
zobrazujem v jTable a jTextField. Nerozumiem prečo JVM v prípade spustenia v netbeanse nepoužíva znakovú sadu Win ale znakovú sadu netbeansu....
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: Java Desktop Application - kódovanie
lebo netbeans pouziva jdk a jre ktore je sucastou jdk pricom windows osobitnu instalaciu jre (pravdepodobne)
skus jTextField1.setText(new String(jTextField1.getText().getBytes(),"utf-8")); -betonarske riesenie ale malo by fungovat...
skus jTextField1.setText(new String(jTextField1.getText().getBytes(),"utf-8")); -betonarske riesenie ale malo by fungovat...
-
pitbullko
Light Star
- Príspevky: 294
- Registrovaný: 13 nov 2009, 8:19
- Bydlisko: „Keby som bol postavený pred rozhodnutie medzi zbabelosťou a násilím, zvolil by som násilie“[Gandhi]
Re: Java Desktop Application - kódovanie
funguje! veľká vďaka 
-
javatar
Hardcore addict
- Príspevky: 6112
- Registrovaný: 12 aug 2010, 14:49
- Bydlisko: I don't exist at all.
Re: Java Desktop Application - kódovanie
v tom pripade si na kazdu komponentu implementuj listener kde pri zmene spustis len dany kod... nech sa s tym zbytocne neseries sam a mas to na jednom mieste
//2000. prispevok
a dokonca ma uzitocnu informacnu hodnotu 
//2000. prispevok