-3

有一个字符串包含一些 Unicode 字符(实际上是汉字),我无法将它们转换为它们的原始外观。

方法System.out.println()只打印\u....."Unicode 字符串,而不是汉字。这是我正在使用的代码:

String code = "\\" + "u751c";
System.out.println(code);
System.out.println(code.length());

code = "\u751c";
System.out.println(code);
System.out.println(code.length());

结果是:

\u751c 
6
甜
1

我怎样才能得到真正的汉字?

感谢您的所有评论和回答。也许我没有说清楚。我得到的字符串可能是(“\”+“u751c”)的形式,System.out.println()的结果只是返回“\u751c”不是字符“甜”。

// text_title is the string scraped from other website using Jsoup. 
System.out.println(text_title);
System.out.println("\u53f0\u6e7e\u8fdb\u53e3 Love of office lady \u5c0f\u8d44\u5973\u4e4b\u604b \u8349\u8393\u5de7\u514b\u529b\u674f\u4ec1\u5377\u5fc3\u9165 80g/\u76d2");

控制台内容:

\u53f0\u6e7e\u8fdb\u53e3 Love of office lady \u5c0f\u8d44\u5973\u4e4b\u604b \u8349\u8393\u5de7\u514b\u529b\u674f\u4ec1\u5377\u5fc3\u9165 80g/\u76d2
台湾进口 Love of office lady 小资女之恋 草莓巧克力杏仁卷心酥 80g/盒                                                                                       

字符串 text_title 可能会以这种形式(“\”+“u751c”)转义,如何将其转换为汉字?

4

1 回答 1

0

这是什么语言?它看起来像 Javascript,所以我现在假设。但请下次在您的问题中添加此类关键信息。

您很困惑,因为您假设为文本字符串分配值的两种方式是相同的。它们不是——你可以从结果中观察到。

在第一行中,将文字单个字符 '\' 分配给字符串,然后是更多文字字符。编译器看到第一个字符“\”,这是一个常见的转义符,因此它知道下一个字符需要以特殊方式处理。它又是字符 '\',但由于它被转义,这次它的“特殊”状态适用,它被添加到你的字符串中。然后还有一些字符,字符串就是您所看到的:“\u751c”。

在第五行,同样的事情发生了;只有这一次,“特殊”字符是小写的“u”。这意味着后面应该有四个十六进制字符(看起来!它们确实如此),并且整个结构形成一个字符。那个单个字符被存储到字符串中,你知道什么,它就是你看到的输出。

在这一点上,不清楚你在问什么。如果您在使用第一种方式显示 Unicode 字符时遇到问题,只需使用第二种方式……如果您有以第一种方式存储的数据,则需要将转义字符转换为 UC。查看此链接进行讨论:将转义的 Unicode 字符转换回实际字符

(其中使用的示例之一System.out.println——您正在使用Java编程。您知道吗?)

于 2013-10-27T10:29:07.490 回答