我正在使用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中处理不同的编码)
答案 0 :(得分:0)
我不知道你是如何解析文件的,但你使用的方法似乎是在解释转义码(如\n
和\u262f
)。要在文件中保留\n
的实例,您可以在使用任何解释转义码的方法之前将\n
替换为\\n
。 \\
将转换为单个\
,n
将保持不变。您是否尝试使用普通java.io.FileReader
来读取文件?这可能更简单。
实际上可以正确读取Unicode符号;许多终端不支持全范围的Unicode字符,并打印一些符号代替它不理解的符号。也许您的程序打印☯
,终端根本不知道如何渲染它,因此它会打印?
。