5

我正在处理一个 1 GB 的 JSON 文本文件,我正在尝试使用 Java 对其进行解析。但是,解析器会抛出异常,因为它遇到了生成此异常的字符“ñ”:

异常 UTF-8 起始字节 0x96 无效

我尝试使用 sed 和 perl 删除该字符,但似乎他们无法读取该字符,因此文件保持不变。我想从整个文件中删除该字符或将其替换为任何其他字符或字符串,以便解析工作。

4

2 回答 2

5

您的文件未以 UTF-8 编码。

您应该找到编码并使用此编码来读取使用InputStreamReader. 如果需要,然后将其保存为 UTF-8(例如使用 an OutputStreamWriter)。

如果您不知道编码,我建议您使用一些可能的编码进行测试:请参阅Charsets

于 2012-06-19T16:30:09.283 回答
2

是的,它可能不是 UTF-8,有关如何检查它是什么编码的一些信息,请参见此处:Java : How to determine the correct charset encoding of a stream

最好的答案似乎指向InputStreamReader#getEncoding()

于 2012-06-19T16:31:31.807 回答