将字符串编码为 UTF-8

新手上路,请多包涵

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

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

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

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 569
2 个回答

String Java中的对象使用不可修改的UTF-16编码* 。

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

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

原文由 Joachim Sauer 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用怎么样

ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)

原文由 Amir Rachum 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题