在java中保留unicode

在java中保留unicode,java,unicode,Java,Unicode,我正在尝试打印带有unicode字符“\u65e5\u672c\u8a9e\u6587\u5b57\u5217”的字符串 我怎样才能打印相同的内容?Java将上述字符串转换为不可读的格式,就好像它正在使用unicode的默认字符转换一样。我怎样才能避免它的发生 我正在OSX上运行它 Edit1:请提供一个不添加反斜杠的解决方案如果您试图准确打印,则需要避开反斜杠: \\u65e5\\u672c\\u8a9e\\u6587\\u5b57\\u5217 编辑:如果这不合适,或者即使不合适,请检查-

我正在尝试打印带有unicode字符“
\u65e5\u672c\u8a9e\u6587\u5b57\u5217
”的字符串

我怎样才能打印相同的内容?Java将上述字符串转换为不可读的格式,就好像它正在使用unicode的默认字符转换一样。我怎样才能避免它的发生

我正在OSX上运行它


Edit1:请提供一个不添加反斜杠的解决方案

如果您试图准确打印,则需要避开反斜杠:

\\u65e5\\u672c\\u8a9e\\u6587\\u5b57\\u5217

编辑:如果这不合适,或者即使不合适,请检查-从ApacheCommons听起来可能就是您想要的。或者是
escapeHtml
方法之一?我不完全确定
escapeJava
是否适用于unicode。

避开你的反斜杠

String s = "\\u65e5\\u672c\\u8a9e\\u6587\\u5b57\\u5217";

可以对字符串中的每个字符
ch
执行以下操作:

  int c = ch;
  printf("\\u%04x", c);

是否要打印
\u65e5…
或相应的unicode字符?我只想按原样打印上面提到的字符串。Java倾向于将它转换为一个字符串,而不是“倾向于”。这就是在Java源代码中指定Unicode文本的方法。@AkD如果只想按原样打印字符串,有什么问题?也许这不是你所想的。不清楚你所说的“带有unicode字符的字符串”是什么意思。正如你所看到的,我们中的许多人都不清楚你是指第一个字符是
(char)0x65e5
的字符串,还是指前六个字符是
{'\\','u',6',5','e',5'}
的字符串。你说“Java将上面的字符串转换成不可读的格式。”什么是不可读的格式?你看到了什么?这个答案是错的。没有反斜杠。OP有一个unicode字符串,想要打印它的编码版本。@DmitryBeransky是吗?我不是这样理解这个问题的,他还没有回复Ingo的评论——如果他说这不是他想要的,我会很高兴地删除答案。@Jeff你已经修改了字符串。假设我有数百万条这样格式的记录。在所有字符前面加反斜杠是不可行的。我们有没有办法让java停止转换unicodes@AkD看到我的编辑-希望这会有所帮助?编辑:当然,这并不理想-这会增加打印的开销-但是,如果你有这种格式的记录,那么打印它们就没有问题了。@AkD。仅在源代码中替换\uxxx。