【发布时间】:2020-08-10 15:44:41
【问题描述】:
有没有办法从头开始创建一个 UTF16 字符串,或者从一个不涉及一些奇怪的“hack”的实际 UTF8 字符串创建一个 UTF16 字符串,比如遍历每个字符并附加一个 00 字节以使其成为 UTF16 字符?
理想情况下,我希望能够做这样的事情:
String s = new String("TestData".getBytes(), StandardCharsets.UTF_16);
但这不起作用,因为字符串文字被解释为 UTF8。
【问题讨论】:
-
这能回答你的问题吗? How to convert UTF8 string to UTF16 尤其是接受答案的第二部分
-
你想在这里做什么?从概念上讲,字符串包含独立于任何编码的字符。仅当您转换为字节或从字节转换时,编码才变得相关。
-
@jhamon 还值得一提的是对此答案的赞成评论。真的不应该那样做。
-
@jhamon 这比我的解决方法要好,但它看起来仍然很难解决问题。
-
如果您将 DB 值作为字符串获取,则已经出现问题。 Java中只有一种字符串;没有 UTF-16 字符串或 UTF-8 字符串之类的东西。