我有这样的 UTF-8 文字:
String literal = "\x6c\x69b/\x62\x2f\x6d\x69nd/m\x61x\x2e\x70h\x70";
我需要阅读它们并将它们转换为纯文本。
java中有可以解释这些的导入吗?
谢谢。
最佳答案
Java 本身不支持 UTF-8 文字。 Java 对 Unicode 的语言支持仅限于基于 UTF-16 的 Unicode 转义。
您可以使用 Unicode 转义符在字符串文字中表达 UTF-8 字符,如下所示:
String literal =
"\u006c\u0069b/\u0062\u002f\u006d\u0069nd/m\u0061x\u002e\u0070h\u0070";
(假设没有输入错误...)
或者您可以(在本例中)用普通 ASCII 字符替换转义符。
请注意,从 UTF-8 到 UTF16 的转换通常并不那么简单。 (本例很简单,因为\xnn 字符都小于 0x80,因此每个字符代表一个 Unicode 代码点/单元。)
<小时/>另一种方法是将 UTF-8 表示为字节数组,并将其转换为字符串;例如
byte[] bytes = new byte[]{
0x6c, 0x69, 'b', '/', 0x62, 0x2f, 0x6d, 0x69, 'n', 'd',
'/', 'm', 0x61, 'x', 0x2e, 0x70, 'h', 0x70};
String str = new String(bytes, "UTF-8");
(再次假设没有输入错误。)
关于java - 如何将这些 UTF-8 文字转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004995/