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?

Vad sägs om att använda

ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)
Kommentarer (6)
Lösning

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å en byte[]. Om du har en String som innehåller oväntade data, så ligger problemet på ett tidigare ställe som felaktigt konverterade binära data till en String (dvs. använde fel kodning).

Kommentarer (4)

Använd byte[] ptext = String.getBytes("UTF-8"); istället för getBytes(). getBytes() använder den så kallade "standardkodningen", som kanske inte är UTF-8.

Kommentarer (5)