[ Andreja Dulovic @ 24.08.2006. 21:26 ] @
Code:
public class NasaSlova {
    
    public NasaSlova() {}

    public static void main(String[] args) {
        System.out.println( "JVM encoding: " +System.getProperty( "file.encoding"));
        File file = new File("test.txt");
        System.out.println("test: ŠĐŽČĆšđžčć");
        FileOutputStream out;
        try {
            
            out = new FileOutputStream("test.txt");
            OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-16");
            writer.write("ŠĐŽČĆšđžčć");
            writer.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    
}


a rezultat je ovo:

Code:
JVM encoding: Cp1252
test: ŠÐŽÈÆšðžèæ

BUILD SUCCESSFUL (total time: 1 second)


sadrzaj fajla test.txt je:
Code:
ŠÐŽÈÆšðžèæ



kompajlirano sa parametrom:
javac -encoding UTF-16
a default encoding u netbeansu je podesen na UTF-16.

koliko ja kapiram, kad promenim tastaturu sa alt-shift na SR (cirilicno ili latinicno) windows koristi Unicode (da li je to isto sto i UTF-16?) i to bi trebalo da vidim nakon pokretanja java programa, ali umesto toga izlaze ova cuda.

cuo sam da je problem u "propmtu" (terminalu) koji ne moze da ispise nasa slova dok se nekako ne podesi (ne znam kako), ali kao sto vidim i ispis u fajl takodje daje kuke kao rezultat.

zna li neko resenje?
[ djalfirevic @ 25.08.2006. 12:19 ] @
Citat:
Andreja Dulovic:

koliko ja kapiram, kad promenim tastaturu sa alt-shift na SR (cirilicno ili latinicno) windows koristi Unicode (da li je to isto sto i UTF-16?) i to bi trebalo da vidim nakon pokretanja java programa, ali umesto toga izlaze ova cuda.



ASCII tabela sadrzi 255 simbola, i iz tog razloga kada stavis UTF-8, s obzirom da racunari rade na nivou bita, 28 daje 256 i to pokriva celu tabelu ASCII simbola. Kada stavis UTF-16 to prakticno predstavlja prosirenje ASCII tabele koja u ovom slucaju sadrzi i nase karaktere. 216 = 65536, sto omogucava dodavanje velikog broja novih simbola.

Citat:
Andreja Dulovic: [code]

cuo sam da je problem u "propmtu" (terminalu) koji ne moze da ispise nasa slova dok se nekako ne podesi (ne znam kako), ali kao sto vidim i ispis u fajl takodje daje kuke kao rezultat.



Kada otvoris properties za Command Prompt mislim da ne postoje nikakva podesavanja sto se tice fonta, sem sto mozes da izaberes neki drugi naravno, ali su oni svi non-unicode.
[ Andreja Dulovic @ 25.08.2006. 14:31 ] @
ok, mogu da se pomirim sa tim da prompt ne moze da ispisuje nasa slova, ali zasto nece u fajl da upise sta treba?

[ hyle @ 25.08.2006. 16:18 ] @
Ne znam zbog čega ti se to događa.

Iskopirao sam ovu tvoju main metodu kod sebe u Eclipse, iskompajlirao i dobio dobar ispis i u konzoli i u fajlu.
U pitanju je Eclipse 3.2.0 i podešen enkoding UTF-8.
[ Andreja Dulovic @ 25.08.2006. 18:13 ] @
ne znam ni ja sta je u pitanju..
mozda je eclipse bolji od netbeansa po tom pitanju?

ali, ako imam string:
Code:
"\u0160\u0161 \u017D\u017E \u0106\u0107 \u010c\u010d \u0110\u0111" 


rezultat ispisa na ekran je
Code:
Šš Žž ?? ?? ??


ali je zato sadrzaj fajla:
Code:
Šš Žž Ćć Čč Đđ



tek sad pojma nemam zasto je to tako...

p.s. sta kod tebe daje: System.getProperty( "file.encoding")
[ djalfirevic @ 26.08.2006. 06:27 ] @
Kod mene daje Cp1250.
[ Andreja Dulovic @ 26.08.2006. 09:35 ] @
da li mozda postoji nacin da ja kod sebe podesim to na Cp1252 (ili na UTF-16)?
mozda ce onda da mi izlaze nasa slova?
[ djalfirevic @ 26.08.2006. 09:50 ] @
To ne bih znao da kazem posto ja nista nisam podesavao. Samo sam prekopirao tvoj program i pokrenuo ga. On je izbacio Cp1252.
[ lukeguy @ 27.08.2006. 19:12 ] @
Ako koristiš WinXP treba da podesiš 'Regionalne i jezičke opcije' (u 'Kontrolnoj tabli') na srpski (svejedno ćirilica ili latinica bar za ovaj tvoj problem). To će automatski podesiti kodnu stranu u konzoli. Takođe u istom apletu podesi 'Jezik za ne-Unikod programe' na srpski (ovaj aplet se nalazi na kartici 'Više opcija').
[ djalfirevic @ 27.08.2006. 20:35 ] @
@lukeguy
Mislim da si u pravu. Da, o tome se radi.
[ Andreja Dulovic @ 28.08.2006. 01:05 ] @
sad sam pobao i kod mene nece. :(


p.s. inace, kad smo vec kod enkodinga, nisam znao da su utf8, 16 i 32 totalno kompatibilni i da je moguce raditi konverziju iz bilo kojeg u bilo koji bez gubitka informacije, sto ce reci da utf8 moze da prikaze vise od 255 karaktera. :)
[ banzaiii @ 01.09.2006. 01:22 ] @
Citat:
djalfirevic: ASCII tabela sadrzi 255 simbola, i iz tog razloga kada stavis UTF-8, s obzirom da racunari rade na nivou bita, 28 daje 256 i to pokriva celu tabelu ASCII simbola. Kada stavis UTF-16 to prakticno predstavlja prosirenje ASCII tabele koja u ovom slucaju sadrzi i nase karaktere. 216 = 65536, sto omogucava dodavanje velikog broja novih simbola.


Ovo nije tačno. UTF-16 nije proširenje ASCII tabele, i UTF-8 ne omogućava kodiranje samo 28 znakova.

Citat:
Andreja Dulovic: p.s. inace, kad smo vec kod enkodinga, nisam znao da su utf8, 16 i 32 totalno kompatibilni i da je moguce raditi konverziju iz bilo kojeg u bilo koji bez gubitka informacije, sto ce reci da utf8 moze da prikaze vise od 255 karaktera.


Ovo je tačno. Ovi formati predstavljaju različite načine kodiranja istog skupa znakova (definisanog Unicode standardom, i njemu ekvivalentnom ISO 10646).
[ Dragi Tata @ 01.09.2006. 02:42 ] @
Uvod u Unicode