【发布时间】:2020-07-05 11:18:49
【问题描述】:
我有一种情况,我必须读取包含特殊字符(如“µ”)的 CSV 文件。这必须使用java来完成。我在做: BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(,"UTF-8"));
在 Windows 中运行正常。但在 redhat linux 环境中,它会将那些特殊字符转换为 '?'。任何帮助都非常感谢
【问题讨论】:
-
仔细检查正在读取的文件的实际编码。二进制内容很重要。
-
可能文件没有编码
UTF-8 -
文件编码为“UTF-8”。多次检查。 linux机器的语言环境是“UTF-8”
-
你如何检查读者返回的内容?文件可能被正确读取,但显示方式有问题
-
首先检查你的 csv 是否正确写入,看看你的 'µ' 是否正确编码为 UTF-8,并且不是从非常依赖代码转换页面的扩展 ASCII 中获取的。您必须调试您的应用程序并查看从 CSV 获得的字符的确切 UNICODE 值。还有第二种情况:检查是否有任何从/到 UNICODE 到字节的转换。调试您的程序并提供它发生的确切信息,看看是否是这种情况。您必须找到该位置并进行更改,以免发生 UNICODE 到 ASCII 的转换。
标签: java csv parsing unicode special-characters