小编典典

将字符串编码为 UTF-8

all

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

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

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


阅读 82

收藏
2022-06-28

共1个答案

小编典典

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

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

  • 作为实现问题,当字符范围适合它时,String可以在内部使用 ISO-8859-1 编码byte[],但这是一个特定于实现的优化,对用户不可见String(即你永远不会注意到,除非你挖掘源代码或使用反射挖掘String对象)。
2022-06-28