我们有一个用于导入的测试文件 (csv),编码为 latin1(如 vim 报告)。
我们已将 websphere 中的 file.encoding 和 client.file.encoding 更改为 UTF-8。
现在,同一文件在 sun.io.ByteToCharUTF8.convert 中被拒绝,并出现“MalformedInputException”
为什么?
我假设 UTF8 是 latin1 的超集。因此,也许某些字节可能会被误解,但随着我们扩大字符集,不应该有异常(exception)?
还有什么可能导致此“MalformedInputException”?
最佳答案
UTF-8 是 ASCII 的超集,但不是 latin-1(这是 ASCII 的不同超集)。 0-127 范围内的所有字符在 UTF-8 和 ASCII 中都是相等的,但 Latin-1 还定义了 128-255 范围内的许多字符,这些字符在解释为 UTF-8 时可能会导致问题。
关于java - 将 latin1 编码为 UTF8 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349786/