[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