日期:2014-05-18  浏览次数:20700 次

关于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


求解决方案。。
JAVA MYSQL 乱码 Cp1252 latin1

------解决方案--------------------
数据库用什么编码,你解码就用什么码解了。这个不能硬来的。
------解决方案--------------------
mysql安装文件中的my.ini修改编码格式
------解决方案--------------------
引用:
Quote: 引用:

mysql安装文件中的my.ini修改编码格式

数据库只能查,不能修改

你确定数据库的编码就是latin1?