日期:2014-05-20  浏览次数:20785 次

怎么用java插入中文到mysql并能在mysql中显示中文
本帖最后由 zhang__tianxu 于 2013-06-18 19:21:38 编辑
java插入中文到mysql是乱码,而直接用mysql插入就能显示
现在想知道怎么用java插入中文并显示能中文
java插入的部分;
SQL:insert into word(word,language,fre) values("?标","zh-cn",1); 
SQL:insert into word(word,language,fre) values("孩子","zh-cn",1); 
SQL:insert into word(word,language,fre) values("child","en",1); 
SQL:insert into word(word,language,fre) values("kids","et",1); 
SQL:insert into word(word,language,fre) values("可爱","zh-cn",1); 
SQL:insert into word(word,language,fre) values("漂亮","zh-cn",1);
java插入数据的结果:

mysql插入的部分:
insert into word(word) values("中文")
mysql插入的结果:

现在想知道怎么用java插入中文并显示能中文?

附:1、建数据库时已经指定编码是utf8了:
sql="create database "+creDBname+" default character set=utf8;";
附:2、连接的时候也指定连接字符编码是utf8了:
//指定连接字符编码----显示还是???
public String code="?useUnicode=true&characterEncoding=utf8";
附:3、读取的字符串也指定了编码UTF-8:
//指定编码方式为utf8与mySQL一致
testLan.getBytes(Charset.forName("UTF-8"));
附:4、待执行的sql语句也再次转为utf8:
String str=new String(sqlstr.getBytes("iso-8859-1"),"UTF-8");

------解决方案--------------------
mysql每个数据库有个编码格式的设置项,LZ查看下资料,保证数据库编码格式与代码编码格式一致。
------解决方案--------------------
数据库表也要utf8,你查下
碰到这种问题,就是检查数据库连接,数据库,表。这3个地方一致了就没有问题。
如果确定一致,就把数据库删除,然后手工按照上面的原则重建一下。碰到过直接修改数据库的编码属性没用,得删除重来
------解决方案--------------------
另外还要检查2个地方:
(1)java程序运行的操作系统的默认编码方式,property属性里有。
(2)mysql服务器的操作系统的编码方式,mysql设置的字符集。
------解决方案--------------------
编码问题。
最简单且在不同的平台上都能正常显示的方法:所有编码都用UTF-8
------解决方案--------------------
直接看看my.ini文件里是不是
default-character-set=utf8
------解决方案--------------------
有可能这句话有问题String str=new String(sqlstr.getBytes("iso-8859-1"),"UTF-8");