MySQL插入中文报错[Err] 1366 - Incorrect string value: ‘\xE9\xA9\xAC\xE5\x8F\xAF…’ for column ‘tel’ at row 1
-
首先:插入中文出错,英文正常,肯定是字符编码集导致的问题
-
查看需要修改的表字段的编码集信息
-- 命令:show create tables 表名; mysql> show create table stu;
可以看到下图,数据表编码集是utf8,但是插入的字段 编码集为latin1
-
处理方法:修改对应字段的编码集类型
-
方法一命令:
-- 语法 : alter table 表名 change 原字段名 新字段名 字段类型 character set utf8 字段属性; alter table `stu` change `name` `name` varchar(64) character set utf8 not null ;
-
方法二命令
-- 语法 : alter table 表名 modify 字段名 字段类型 character set utf8 字段属性; alter table `stu` modify `name` varchar(64) character set utf8 not null ;
修改完成后可以正常在相应字段插入中文类型的数据
-
其它编码集修改操作
- 修改数据表的字符编码集
-- 语法: alter table 表名 charset = '字符编码集类型';
alter table `stu` charset = 'utf8';
-
数据库的字符编码集修改
-
先进入数据库安装文件下,找到 bin 目录同级文件 my.ini
-
将 my.ini 的 latin1 全部替换成 utf8
-
重启mysql服务,使用 \s 命令查看。
-
未修改完成可使用命令
-- 语法: alter database 库名 character set utf8; alter database `stu` character set utf8;
-
-
数据库所有字符编码集,尽量保持 编码集类型一致,否则可能会出现编码转换乱码问题。
-
数据库所有字符编码集,尽量保持 编码集类型一致,否则可能会出现编码转换乱码问题。