面对Unicode字符的问题

时间:2013-10-27 09:58:31

标签: java unicode encoding character-encoding

有一个字符串包含一些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”)进行转义,如何将其转换为中文字符?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

目前还不清楚你在问什么。如果您在使用第一种方式显示Unicode字符时遇到麻烦,只需使用第二种方式... 如果您以第一种方式存储存储数据,则需要将转义字符转换为UC。请查看此链接进行讨论:Convert escaped Unicode character back to actual character

(其中一个示例使用System.out.println - 您正在使用 Java 进行编程。您知道吗?)