在MYSQL数据库中插入中文遇到的经典问题:
(ERROR 1366 (HY000): Incorrect string value:’\xD5\xD4’ for column ‘name’ at row 1)
#**原因分析:**这个问题是由于字符集设置不对引起的,wamp 集成环境中 mysql 的默认编码为 latin1 ,是不支持中文字符输入的。
#解决办法:
1.检查你的MYSQL默认的编码格式
使用此语句SHOW VARIABLES LIKE '%CHAR%';
检查你的字符集格式,如果如下图中所示,那么你的MYSQL数据库默认编码方式没问题,不需要修改。如果不满足,使用方法2进行设置。
此时,在MYSQL中
使用CREATE DATABASE t2;
创建数据库,
使用CREATE TABLE sdb_goods;
创建数据表。
使用INSERT tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('X240(20ALA0EYCD) 12.5英寸超极本','超级本','联想','4999',DEFAULT,DEFAULT);
不会报错。
你可以使用 SHOW CREATE DATABASE t2;
查看数据库的编码格式是否为utf8,如下图:
你可以使用 SHOW CREATE TABLE tdb_goods;
查看数据表的编码格式是否为utf8,如下图:
2.设置MYSQL的默认编码格式方法
(1)打开wamp,点击右下角出现的wamp启动后的绿色的小图标,然后选择mysql下的my.ini
另外一种打开方式:
(2)在my.ini 文件中找到[client] 在下面输入default-character-set=utf8;
这里是设置WAMPSERVER客户端输入时的编码。
(3)在my.ini 文件中找到[mysql] 在下面输入default-character-set=utf8;
这是设置MYSQL客户端的编码格式。
(4)在my.ini 文件中找到[mysqld] 在下面输入character_set_servert=utf8;
这是设置MYSQL服务端的编码格式。
(5)配置完成后重启wamp,然后再打开命令行窗口,在里面输入:show variables like ‘%char%’; 命令,查看编码设置是否成功。
(3)修改字符集的常用MYSQL语句:
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;
alter database db_name character set utf8; 备注:修改数据库db_name的字符集:
alter table tb_name character set utf8b; 备注:修改数据表tb_name的字符集:
提示:
set names utf8;
所起的作用等于下面三条语句
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_results=utf8;