我正在处理一个 1 GB 的 JSON 文本文件,我正在尝试使用 Java 对其进行解析。但是,解析器会抛出异常,因为它遇到了生成此异常的字符“ñ”:
异常 UTF-8 起始字节 0x96 无效
我尝试使用 sed 和 perl 删除该字符,但似乎他们无法读取该字符,因此文件保持不变。我想从整个文件中删除该字符或将其替换为任何其他字符或字符串,以便解析工作。
我正在处理一个 1 GB 的 JSON 文本文件,我正在尝试使用 Java 对其进行解析。但是,解析器会抛出异常,因为它遇到了生成此异常的字符“ñ”:
异常 UTF-8 起始字节 0x96 无效
我尝试使用 sed 和 perl 删除该字符,但似乎他们无法读取该字符,因此文件保持不变。我想从整个文件中删除该字符或将其替换为任何其他字符或字符串,以便解析工作。
您的文件未以 UTF-8 编码。
您应该找到编码并使用此编码来读取使用InputStreamReader
. 如果需要,然后将其保存为 UTF-8(例如使用 an OutputStreamWriter
)。
如果您不知道编码,我建议您使用一些可能的编码进行测试:请参阅Charsets。
是的,它可能不是 UTF-8,有关如何检查它是什么编码的一些信息,请参见此处:Java : How to determine the correct charset encoding of a stream
最好的答案似乎指向InputStreamReader#getEncoding()