毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

用java存入mysql,数据库里中文显示总是???

更新时间:2012-5-21:  来源:毕业论文

现在在做java连接mysql的,mysql用的4.0,用 heidisql管理sql数据,jdbc用的是5.05,现在用java存入mysql,数据库里中文显示总是???,

写sql语句在conn.prepareStatement("INSERT INTO `offlinemessage` (`ID`) VALUES ('中文')");是可以正常显示
但是如果写成String temp="中文";
temp=new String(contemp.getBytes("ISO-8859-1"),"GB2312");
conn.prepareStatement("INSERT INTO `offlinemessage` (`ID`) VALUES ('"+temp+"')");数据库里就会显示???.
网上找了不少方法都没有效果
比如在my.ini里添加default-character-set=gb2312,但是我的mysql安装文件夹下没有my.ini,在c:\windows下找到my.ini,我在那里修改的 但是没有效果,表重新建立过还是不行

去掉temp=new String(temp.getBytes("ISO-8859-1"),"GB2312");
你要这样不用插mysql,控制台也出不了中文

问题很明显,是mysql数据库编码与gb2312编码不一致。
temp=new String(contemp.getBytes("ISO-8859-1"),"GB2312");你之所以这样转,是因为jsp传入的中文本身是西文,也就是ISO-8859-1,传入进来后已经乱码了,你用这个转成gb2312好了,正常了,不乱码了,但是因为mysql数据库编码可能不是gb2312,这样插入mysql就会乱码。

建议最好将所有编码都设置为UTF-8,jsp,java工程,mysql数据库,连接mysql的连接串,都给成UTF-8,你试试看,另外,修改mysql的my.ini之后,要重新启动mysql服务器才生效。
 
直接修改该mysql的my.ini配置文件,配置成默认为gbk

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。