关于MYSQL取出数据乱码的问题
本帖最后由 u011687117 于 2013-12-03 11:46:11 编辑
我之前发过一个贴子,关于MYSQL乱码的问题:
http://bbs.csdn.net/topics/390655701
查了许多资料之后,找到了根本原因:
http://bugs.mysql.com/bug.php?id=64071
根据上面资料中所说,因为有5个字符在java的Cp1252字符集中是没有定义的。但在latin1和iso8859-1中有定义,所以转换之后就出现了乱码。
但是无法解决。比如:
String str = "消息";
byte b[] = str.getBytes();
String new_str = new String(b,"Cp1252");
String s = new String(new_str.getBytes("Cp1252"));
//正常的“消息”getBytes&tohex之后是:
ffffffe4,ffffffbf,ffffffa1,ffffffe6,ffffff81,ffffffaf
//但是经过上面的操作之后,getBytes&tohex则变成了:
ffffffe4,ffffffbf,ffffffa1,ffffffe6, 3f ,ffffffaf
求解决方案。。
------解决方案--------------------数据库用什么编码,你解码就用什么码解了。这个不能硬来的。
------解决方案--------------------mysql安装文件中的my.ini修改编码格式
------解决方案--------------------
你确定数据库的编码就是latin1?