我们有一个用于导入的测试文件(csv),编码为latin1(如vim报告)。

我们已将Websphere中的file.encoding和client.file.encoding更改为UTF-8。

现在,sun.io.ByteToCharUTF8.convert中的“ MalformedInputException”拒绝了同一文件

为什么?

我认为UTF8是latin1的超集。因此,也许有些字节可能会被误解,但是当我们扩展字符集时,不应有例外吗?

还有什么可能是导致此“ MalformedInputException”异常的原因?

最佳答案

UTF-8是ASCII的超集,但不是latin-1(这是ASCII的另一超集)。 0-127范围内的所有字符在UTF-8和ASCII中均相等,但是Latin-1还定义了128-255范围内的许多字符,当解释为UTF-8时,这些字符可能会引起问题。

08-05 09:41