数据库复制移植出现的问题----中文编码问题


 
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的时候,选择编码方式时,虽然选了某个编码方式,但是还是要勾选改编码的那项的.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值