Kevin-Sage() 说:
呵呵,加了之后还不行。没道理啊
说:
玩蛋,在MySql居然是乱码
Kevin-Sage() 说:
晕,那还是不行
说:
你看String url = "jdbc:mysql://localhost:3306/yappt_srv?useUnicode=true&characterEncoding=gbk";
说:
对吧
Kevin-Sage() 说:
对的
Kevin-Sage() 说:
你的mysql数据库编码是什么
说:
default-character-set=gb2312
Kevin-Sage() 说:
不知道是什么原因,这烦人得中文问题
说:
我重装下MySql
说:
我的代码:
———————————
String r = "INSERT INTO T_AddrAmount VALUES('XXXXXX','DMF0002','(1万到20万之间,必须为万元整数倍)','2000-01-01','2099-12-30',' ');";
String des=new String(r.getBytes("GBK"),"UTF-8");
System.out.println(des);
stat.execute(des);
-
r:打出来的是中文;
但是到了 des,打出来的就是:INSERT INTO T_AddrAmount VALUES('XXXXXX','DMF0002','(1??20?????,????????????)','2000-01-01','2099-12-30',' ');了
但:如果不转化的话,在execute那里又是出错。
Kevin-Sage( 说:
呵呵,这个问题我也不知道怎么解决。如果你用hibernate,可以使用hibernate的api解决
说:
useUnicode=true&characterEncoding=UTF-8";
说:
这个是什么意思?
可以使用unicode编码,而且是用utf-8?
Kevin-Sage() 说:
useUnicode 是否采用指定编码的意思
Kevin-Sage() 说:
在库中建表时语句为: create table tbname(..........)engine=MyISAM character set gbk collate gbk_chinese_ci;
程序中连接数据库的Connection对象需要写成Connection con = DriverManaager.getConnection("jdbc:mysql://...user=..&password=...&useUnicode=true&characterEncoding=gbk");
Kevin-Sage() 说:
我同事的解决方案,你试试
Kevin-Sage() 说:
修改mysql的配置文件(windows下为my.ini),将其中的两个default-character-set都设置成为UTF8
Kevin-Sage() 说:
或者GBK
说:
我就想:String des=new String(r.getBytes("GBK"),"UTF-8"); 这样一来,r是中文的,des怎么就是乱码显示了呢
Kevin-Sage) 说:
如果还是不行地话,可以这样:把类型从VARCHAR 转换为
NVARCHAR
Kevin-Sage() 说:
你用的是mysql哪个版本的
说:
5.0
Kevin-Sage() 说:
你的mysql默认的编码
说:
我在安装的时候是选择了GBK,但是在MY.INI里面是: lain1
Kevin-Sage() 说:
你的mysql编码可能默认的编码是utf-8,你强制转换gbk才出现这样的问题
Kevin-Sage() 说:
java里面默认的编码是iso8859-1,如果你的存储编码和java里面的编码不统一
Kevin-Sage() 说:
中文就不会被识别,你先找到症结所在
说:
我想也是我的mySql的问题,因为我之前开发完了以后是对的,后来我重装过系统后,mysql也重装了
最后::: 原来是在安装mySql的时候,选择编码方式时,虽然选了某个编码方式,但是还是要勾选改编码的那项的.