Mysql插入中文出现错误
插入中文会报错,但是插入英文不会报错。
错误分析:可能是编码格式不是utf8造成的。
解决办法:修改编码格式
修改字符集的编码格式和排列顺序的编码格式:如下图所示
修改好以后测试插入中文。如果不行就去修改数据库编码格式
修改为以下:
修改完,测试发现还不行的话 打开命令列界面 :输入show create table user;
发现 name 和email的编码格式还是latin1 不是utf8,但是默认的编码格式已经变成utf8了
所以要修改所对应列的编码格式
使用下面的命令修改user表里面的编码格式
修改以后查看user表编码格式。发现已经不是干你刚才的latin1了。再去测试
测试结果:
成功插入中文。
备注
修改完编码格式后需要重启一下mysql数据库
重启命令:MySQL
net stop mysql的服务名称
net start mysql的服务名称
附录:
mysql修改数据库表和表中的字段的编码格式的修改
修改一张表的所有字段的编码格式
alter table tablename
convert to character set utf8;
修改表的编码格式
ALTER TABLE tablename
DEFAULT CHARACTER SET utf8;
修改字段的编码格式
ALTER TABLE tablename
CHANGE 字段名1
字段名2
VARCHAR(36) CHARACTER SET utf8 NOT NULL;
CHANGE 字段名1
字段名2
VARCHAR(36) CHARACTER SET utf8 NOT NULL;