将字符串编码为 UTF-8

2022-08-31 06:06:50

我有一个带有“ñ”字符的字符串,我有一些问题。我需要将此字符串编码为UTF-8编码。我通过这种方式尝试过,但它不起作用:

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

如何将该字符串编码为 utf-8?


答案 1

如何使用

ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)

答案 2

StringJava 中的对象使用无法修改的 UTF-16 编码*

唯一可以具有不同编码的是 .因此,如果您需要UTF-8数据,那么您需要一个.如果你有一个包含意外数据的,那么问题出在更早的地方,错误地将一些二进制数据转换为a(即它使用了错误的编码)。byte[]byte[]StringString

* 作为实现问题,当字符范围适合时,String 可以在内部使用 ISO-8859-1 编码的字节 [],但这是特定于实现的优化,对 String 用户不可见(即,除非您深入研究源代码或使用反射来挖掘 String 对象,否则您永远不会注意到)。


推荐