[Java lista] String karakter konverzio

Laszlo.Marai at nokia.com Laszlo.Marai at nokia.com
2006. Nov. 24., P, 13:57:17 CET


  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


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