Kodar sträng till UTF-8
Jag har en String med ett "ñ" tecken och jag har några problem med det. Jag måste koda denna sträng till UTF-8-kodning. Jag har försökt på detta sätt, men det fungerar inte:
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
Hur kodar jag denna sträng till utf-8?
176
3
Vad sägs om att använda
String
-objekt i Java använder UTF-16-kodning som inte kan ändras.Det enda som kan ha en annan kodning är ett
byte[]
. Om du behöver UTF-8-data behöver du alltså enbyte[]
. Om du har enString
som innehåller oväntade data, så ligger problemet på ett tidigare ställe som felaktigt konverterade binära data till enString
(dvs. använde fel kodning).Använd
byte[] ptext = String.getBytes("UTF-8");
istället förgetBytes()
.getBytes()
använder den så kallade "standardkodningen", som kanske inte är UTF-8.