Java打印字符串为unicode

时间:2016-10-25 22:30:31

标签: java unicode encoding

我正在使用java处理一些数据高音。我从文件中读取它们,做一些处理并打印到stdout 文件中的文字如下所示:

  

" RT @ Bollogosta319a:#BuyBookSilentSinners \ u262fGain追随者\ n \ u262fRT这个\ n \ u262fMUST关注我跟随\ n \ u262fFollow所有rts \ n \ u262f获得\ n #ANDROID \ u2026"

我读了它,然后将它打印到stdout。输出应该是:

  

" RT @ Bollogosta319a:#BuyBookSilentSinners☯GainPetersers\n☯RTthis \n☯MUST关注我后退\ n关注所有rts \n☯Gain\ n #ANDROID ..."

但我的输出是这样的:

  

" RT @ Bollogosta319a:#BuyBookSilentSinners?获得关注者   ?RT这个   ?必须跟着我跟我回来   跟随每个rts的人   ?获得     #ANDROID?"

所以,似乎我有两个问题要处理:
 1.打印确切的Unicode character而不是Unicode string
 2.保持"\n"不变,而不是输出中的换行符。

我该怎么做? (我真的很想在Java中处理不同的编码)

1 个答案:

答案 0 :(得分:0)

我不知道你是如何解析文件的,但你使用的方法似乎是在解释转义码(如\n\u262f)。要在文件中保留\n的实例,您可以在使用任何解释转义码的方法之前将\n替换为\\n\\将转换为单个\n将保持不变。您是否尝试使用普通java.io.FileReader来读取文件?这可能更简单。

实际上可以正确读取Unicode符号;许多终端不支持全范围的Unicode字符,并打印一些符号代替它不理解的符号。也许您的程序打印,终端根本不知道如何渲染它,因此它会打印?