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

jsp mysql utf8中文乱码问题
我在安装mysql5.2时设置编码方式为utf8,然后我用insert   into   admin   values   ( '大大 ', 'dada ', 'a ');命令添加一条记录时提示:error   1366   (HY000):Incorrect   string   value: '\xB4\xF3\xB4\xF3 '   for   column   'user_name '   at   row   1

意思是说我为user_name字段提供的字符串值不对,但是如果添加英文字符串值就没问题。user_name是varchar(20)类型的。

如果我通过jsp页面向数据库中添加同样的一条含有中文字符的记录,就可以添加进去,但是在mysql命令行中用select   *   from   admin;命令查看的话显示乱码。我的jsp页面也是utf8的。

请问这是怎么回事?如何能直接在mysql中添加中文记录,并且不显示乱码?请大家帮帮我……

------解决方案--------------------
修改mysql的配置文件my.ini,将字符集设置为gb2312.再修改页面编码为gb2312.

我用的是中文字符集,所以没什么问题。
我暂时只想到这种方法。
------解决方案--------------------
这个问题我整了2天,刚解决,最后是这样解决的:my.ini里修改字符集为gbk,两个地方都要修改。
然后重新启动数据库,这时候数据库原有的数据会变乱码。
建立数据库的时候这样,
CREATE DATABASE dbname
CHARACTER SET 'gbk '
COLLATE 'gbk_chinese_ci ';
jsp里写入和查询都不需要转码,直接用就好了。能直接中文写入和查询出来。

------解决方案--------------------
哦,连接池还是需要这样写的 DbUrl= "jdbc:mysql://localhost:3306/dbname?useUnlcode=ture&characterEncoding=gbk ";