连接中的相关设置:
"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312“当我执行SQL语句:CREATE TABLE code(name varchar(255));
INSERT INTO code VALUES('中国');
后,却出现了如下异常:
SQLException has ocurred while executing the query:'Incorrect string value: '\xD6\xD0\xB9\xFA' for column 'name' at row 1' (error-code='1366', sqlstate='HY000').
这是为什么?
那们朋友知道!请帮个忙。
"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312“当我执行SQL语句:CREATE TABLE code(name varchar(255));
INSERT INTO code VALUES('中国');
后,却出现了如下异常:
SQLException has ocurred while executing the query:'Incorrect string value: '\xD6\xD0\xB9\xFA' for column 'name' at row 1' (error-code='1366', sqlstate='HY000').
这是为什么?
那们朋友知道!请帮个忙。
将建表语句改为:
CREATE TABLE code(name varchar(255) CHARACTER SET gbk);
即在每个字符类型说明后加上。解决方法二:
可以先停掉 MySQL 服务,找到 MySQL 的目录下的 my.ini 文件,
找到 [mysqld] 组,在里面加上:default-character-set=GBK,
重启 MySQL 服务,将原来的数据库删除,重新建库这样默认的字符
集就是 GBK,而不是 Latin1 了。以上两个方法都可以解决,但是强烈推荐方法二(方法一太麻烦得一个一
个字段的设)。
这是由于 MySQL 客户端的显示字符还没有设,只要在 my.ini 的 [mysql]
组中加上:default-character-set=GBK,以后界面上都是按 GBK 字符
显示了。当然了,如果你不改这个就要每次在进入 MySQL 控制台后输入:SET CHARACTER SET gbk;
这样是比较麻烦的,因为 MySQL 不管是内部存储还是客户端的显示默认采用 latin1 的,也
就是 ISO-8859-1 字符集的。
=========================
显然不对路!
my.ini里面的
[client]port=3306[mysql]default-character-set=xxxx修改为:
default-character-set=你所要的字符!
default-character-set=GBK 的话,需要重启服务,并且新建数据库才能有效。
对已经建好的数据库、数据表是无效的,需要一个一个地手工更改字符集编码。
1)修改 MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件)。 设置
default-character-set=gbk(注意,有2处) 2)修改data目录中相应数据库目录下的db.opt配置文件
将 default-character-set=latin1
default-collation=latin1_swedish_ci 改为 default-character-set=gbk
default-collation=gbk_chinese_ci
重启 MySQL 服务,重新建库,或者在你原来用的库中重新建表(但原来出错的表是绝对不能用了)。