Java - Copy&将Unicode粘贴到字符串

时间:2018-02-20 16:13:43

标签: java unicode io

我有一个程序,当被要求提供类的可视化表示时,会输出一个包含Unicode字符的字符串。
从技术上讲,该程序还能够将可视化表示解析回其类结构。

但是,如果我复制&粘贴可视化表示并将其粘贴回作为输入,读取的字符串是错误的。例如:
(¬(a) ∨ ((¬(b) ∧ (c ∧ d)) ∨ e))变为(¬(a) ⨠((¬(b) ⧠(c ⧠d)) ⨠e))

问题:
如何处理包含Unicode的输入以获取忠实表示输入的String?

1 个答案:

答案 0 :(得分:1)

损坏的数据是解析二进制数据的结果,该二进制数据将UTF-8编码的文本表示回String,同时使用不同的字符集,例如ISO-8859-1。您的问题不包含任何显示如何输出和解析数据的代码,因此我只能提供一般解决方案:

如果您使用InputStreamReader读取数据,请使用

InputStreamReader isr = new InputStreamReader(sourceInputStream, "UTF-8");

如果数据来自文件,请不要使用FileReader,因为这使用的系统的字符集可能与UTF-8不同

如果您读入已经可用的数据byte - array:

String text = new String(byteArray, "UTF-8");

如果这没有帮助您需要提供更多信息,即您必须解析数据的代码和输入来源的解释。