java - 将 latin1 编码为 UTF8 失败

标签 java encoding character-encoding websphere

我们有一个用于导入的测试文件 (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/

相关文章:

node.js - iOS 上的 Appium 编码问题

c - C 中的 GET HTTP 请求(消息体)

MySQL 多语言编码 |错误代码 : 1366. 错误的字符串值: '\xCE\x09DIS'

java - 错误: MyGestureDetector cannot be resolved to a type.如何解决?

c# - C# 中的 ASN.1 编码 BER、PER 等

java - 获得正确的编码

c# - 出现问号而不是空格

java - 访问扩展类中的属性/常量

java - 禁用 hibernate 输出

java - 在 Java 应用程序中执行批处理文件时出现问题