Java使用正确的unicode字符将ISO-8859-1转换为UTF-8

时间:2011-02-15 21:56:15

标签: java mysql unicode utf-8

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

这会导致两个问题:

  • 我有一些在ISO中看起来很好的字符,但是因为我输出的是UTF-8,就像大多数java应用程序一样输出Java。
  • I cannot insert into MySQL即使设置为UTF-8

对于MySQL,我得到例外(见上面的链接):

引起:java.sql.SQLException:字符串值不正确:'\ xC2 \ x9Esk \ xC3 \ xA9 ...'对于第1行的列'b'

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

1 个答案:

答案 0 :(得分:9)

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

尝试将您的来源标记为WIN-1252,并且应该正确转换。