字符集问题
问题描述:
我有一个utf-8格式的MYSQL数据库,但数据库中的字符是ISO-8859-1(ISO-8859-1字符串存储在utf-8中)。我尝试过重新编码,但它只转换ü到ü¼)。有没有人有解决方案?字符集问题
答
如果您试图在设置为UTF-8的数据库中存储ISO-8859-1字符,您只是设法破坏了您的“特殊字符” - 因为MySQL会从数据库中检索字节并尝试将它们组装为UTF-8而不是ISO-8859-1。正确读取数据的唯一方法是使用一个脚本,做一些事情,如:
ResultSet rs = ...
byte[] b = rs.getBytes(COLUMN_NAME);
String s = new String(b, "ISO-8859-1");
这将确保您获得(其中来自一个ISO-8859-1字符串从你所说的)字节,然后您可以将它们组装回ISO-8859-1字符串。 另一个问题 - 你用什么来“查看”数据库中的字符串 - 是不是你的控制台没有正确的字符集来显示这些字符,而不是错误地存储字符?
注:最后更新的评论
最简单的方法是重新导入具有指定的正确字符集的数据。任何方式来做到这一点? – 2011-06-14 11:04:33
我不能重新进口 – niklas 2011-06-14 11:06:29
这里有一个很好的答案重复:[我需要帮助修复破损的UTF8编码](http://*.com/questions/1344692/i-need-help-fixing-broken-utf8-encoding ) – 2011-06-14 11:07:36