Encodeer String naar UTF-8

Ik heb een String met een "ñ" karakter en ik heb er wat problemen mee. Ik moet deze String coderen naar UTF-8 codering. Ik heb het op deze manier geprobeerd, maar het werkt niet:

byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");

Hoe codeer ik die string naar utf-8?

Hoe zit het met het gebruik van

ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)
Commentaren (6)
Oplossing

String objecten in Java gebruiken de UTF-16 codering die'niet kan worden gewijzigd.

Het enige dat een andere encoding kan hebben is een byte[]. Dus als je UTF-8 data nodig hebt, dan heb je een byte[] nodig. Als je een String hebt die onverwachte data bevat, dan zit het probleem op een eerdere plaats die binaire data verkeerd heeft geconverteerd naar een String (d.w.z. dat de verkeerde encoding werd gebruikt).

Commentaren (4)

Gebruik byte[] ptext = String.getBytes("UTF-8"); in plaats van getBytes(). getBytes() gebruikt de zogenaamde "default encoding", die mogelijk niet UTF-8 is.

Commentaren (5)