[Java lista] String karakter konverzio

Keresztes József jkeresztes at vati.hu
2006. Nov. 24., P, 14:19:47 CET


Hi !
 
El tudom képzelni hogy a kérdezőnek az az alapproblémája és ezért nem tud a gödörből kimászni (nincs valakinél egy létra ? :) mert összeállt egy 
rossz String. Pl. olvasott egy InputStream-ről vagy valami byte tömbből 
és amikor Stringet állított elő akkor rossz kódolás lett megadva.
S ő ebből a rosszul előállt String-ből szeretne jó adatokat visszakapni...
 
Joe
________________________________

Feladó: javalist-bounces at javagrund.hu meghatalmazó: Laszlo.Marai at nokia.com
Küldve: 06-11-24, P 13:57
Címzett: javalist at javagrund.hu
Tárgy: Re: [Java lista] String karakter konverzio



  Hali!

>Koszonom a sok valaszt, de sajnos nem jutottam eredmenyre.
>Olyan, mintha csak az ekezetes karakter lenne mas kodolasba.
>Eredetileg ezt lattam a logban: "G??" - 0xc3a3 Az atkodolas
>utan pedig: "GĂ?Â?" - 0xefbfbd Tehat tovabb kodolta a kodolast :-(

Igy van. Mivel ezt irtad le. Ahogy mar elhangzott, a Stringek
kodolasa mindig unicode (UTF-16):
"A String represents a string in the UTF-16 format in which supplementary
characters are represented by surrogate pairs (see the section Unicode
Character Representations in the Character class for more information).
Index values refer to char code units, so a supplementary character uses
two positions in a String."

Te nem ezen akarsz valtoztatni, mert ezen nem lehet (meg nincs is ertelme).
Atkodolni akkor kell, ha elhagyja a string a VM-et (kiirod valahova,
atkuldod egy nem java processnek). De ha atkodolod, akkor az onnantol
kezdve nem string hanem egy karakter (vagy byte) tomb, vagy stream.
Az eddigi megoldasok mellett erdemes meg nezegetni az OutputStreamWriter-t
is (ha netan streambe akarnad irogatni a stringeket). Az ugyanis kepes
menetkozben konvertalni a megadott kodolasra a beleirogatott stringeket.
(Valoszinuleg erre van szukseged.)

  Ba'ly,
    Atleta
_______________________________________________
Javalist mailing list
Javalist at javagrund.hu
http://javagrund.hu/mailman/listinfo/javalist


--------- következő rész ---------
Egy nem text típusú csatolt állomány át lett konvertálva...
Név: nem elérhető
Típus: application/ms-tnef
Méret: 5559 bytes
Leírás: nem elérhető
Url : http://javagrund.hu/pipermail/javalist/attachments/20061124/b0a1ff16/attachment-0001.bin 


További információk a(z) Javalist levelezőlistáról