1

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

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

现在同一个文件在 sun.io.ByteToCharUTF8.convert 中被“MalformedInputException”拒绝

为什么?

我假设 UTF8 是 latin1 的超集。所以也许有些字节可能会被误解,但不应该有例外,因为我们扩大了字符集?

这个“MalformedInputException”还有什么原因?

4

1 回答 1

2

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

于 2012-09-10T10:33:32.007 回答