注册 登录
编程论坛 MySQL论坛

mysql insert into 乱码

小程序员 发布于 2011-04-09 14:51, 2601 次点击
    我用mysql,建立数据库hibernate,表student,执行语句(dos窗口下输入语句)insert into student values(***中文乱码***);插入中文数据的时候,乱码了。。。。。。。。。。就是中文全变成“?????”了
    首先:我把my.init文件两处修改成为了default-character-set=gbk。
    修改后,查询的结果是
set character_set_client=gbk;
set character_set_connection=gbk;
set character_set_database=gbk;
set character_set_results=gbk;
set character_set_server=gbk;
set character_set_system=utf8;
set collation_connection=gbk;
set collation_database=gbk;
set collation_server=gbk;
    其次:我修改了数据库的编码跟表的编码

(1)sql>show create database hibernate;
     显示:   engine=innodb default charset=gbk;
(2)sql>show create database hibernate;
     显示: engine=innodb default charset=gbk;

郁闷了。貌似哪里都改了,就是不行
---------------------------------------------------------------------------
插入中文时,报错如下:
ERROR 1366 <HY000>:Incorrect string value:'\xB7\xA2\xB2\xEF' for column 'Ssex' at row 1


3 回复
#2
小程序员2011-04-09 14:56
结果是
character_set_client=gbk;
character_set_connection=gbk;
character_set_database=gbk;
character_set_results=gbk;
character_set_server=gbk;
character_set_system=utf8;
character_set-filesystem=binary;

collation_connection=gbk_chinese_ci;
collation_database=gbk_chinese_ci;
collation_server=gbk_chinese_ci;
_________________________
跪求
#3
小程序员2011-04-09 20:11
等到有人来回答,菜都凉了。我自己终于解决了。如果有朋友看到这个帖,我希望你能学到点东西。。。。
mysql乱码完美解决:
(一)存储乱码,在执行insert时,出现乱码。这是由于数据库编码不一致造成的。mysql编码有四个级别,分别是system、database、table、column即系统,数据库,表,字段。如果不小心,这四个编码很容易不统一而出现乱码。而解决的办法是让这四种编码相同。具体怎么操作,比如如何让database的编码是gbk。请上百度查询,有一大把答案。。。。。
(二)查询乱码,这是在执行查询时,这个查询语句会首先被编码,如果有误,就没得谈了。这个大家可以上百度。。。。。具体就是collation跟character要一致就没问题。
谢谢!!!
1