我有一个带有“ñ”字符的字符串,但我遇到了一些问题。我需要将此字符串编码为 UTF-8 编码。我已经通过这种方式尝试过,但它不起作用:
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
如何将该字符串编码为 utf-8?
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个带有“ñ”字符的字符串,但我遇到了一些问题。我需要将此字符串编码为 UTF-8 编码。我已经通过这种方式尝试过,但它不起作用:
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
如何将该字符串编码为 utf-8?
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用怎么样
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)
原文由 Amir Rachum 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
2 回答7k 阅读✓ 已解决
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
String
Java中的对象使用不可修改的UTF-16编码* 。唯一可以有不同编码的是
byte[]
。因此,如果您需要 UTF-8 数据,则需要byte[]
。如果您有一个String
包含意外数据,那么问题出在较早的某个地方,错误地将一些二进制数据转换为String
(即它使用了错误的编码)。\* 作为实现问题,
String
可以在 内部使用 ISO-8859-1 编码byte[]
当字符范围适合它时,但这是特定于实现的优化String
的用户不可见(也就是说,除非你深入研究源代码或使用反射来深入String
对象,否则你永远不会注意到)。