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