【问题标题】:Java convert ISO-8859-1 to UTF-8 with correct unicode charactersJava 使用正确的 unicode 字符将 ISO-8859-1 转换为 UTF-8
【发布时间】:2011-06-27 22:56:48
【问题描述】:

我尝试将一些 ISO-8859-1 文本转换为 UTF-8,但最终得到了一些未正确映射的字符。 我一直在使用过多的标准内置 Java 字符集转换,它们几乎都基于 Charset.decode 和内置 CharsetDecoder。

这会导致两个问题:

  • 我有一些字符在 ISO 中看起来不错,但在 Java 中却很糟糕,因为我像大多数 Java 应用程序一样以 UTF-8 输出。
  • I cannot insert into MySQL 即使它设置为 UTF-8

对于 MySQL,我得到了异常(参见上面的链接):

原因:java.sql.SQLException:不正确的字符串值:'\xC2\x9Esk\xC3\xA9...' for column 'b' at row 1

是否有 Java iconv 或比内置更好的字符解码器/映射器?

【问题讨论】:

    标签: java mysql unicode utf-8


    【解决方案1】:

    你确定你有 ISO-8859-1 吗?您可能有一些 Win-1252,除了十几个字符外,它可能有点接近。那 \x9E 引起了我的怀疑。

    尝试将您的源标记为 WIN-1252,它应该可以正确转换。

    【讨论】:

    • 你是生活的冠军。我运行了 iconv -f WINDOWS-1252 并且中提琴问题消失了。奇怪的是我的浏览器(Firefox)和我的文本编辑器都告诉我它是 ISO-8859-1
    • 当我们将软件转移到欧洲时,“真正的 ISO-8859-1 与 Microsoft ISO-8859-1”让我经历了几年的调试(和噩梦)。我很高兴你能从我的糟糕经历中吸取教训。
    猜你喜欢
    • 2020-01-25
    • 2014-08-29
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2012-01-05
    • 2010-11-19
    相关资源
    最近更新 更多