数据库错误 ERROR 1366 (HY000): Incorrect string value: '\xD4\xF8\xBB\xAA' for column 'Sname' at row 1解决

一.原因:

插入数据时有中文字符出现

image-20210916102024311

二.解决方案

1.查看当前服务器状态 : status或者\s

image-20210916102137870

2.修改数据库的默认编码方式

使用命令:

alter database mydb character set gbk;

image-20210916102622143

查看修改是否成功:使用命令:\s或则status;可以看到Db characterset:gbk 设置成功了。

image-20210916102806165

插入数据试一下:

image-20210916102846671

发现依旧报错.报错的原因是,在修改数据库mydb编码方式前,表department就已经建立了。因此,表department它的编码还是数据库之前默认的编码方式latin1,这个可以通过下面的命令来得到确认:

show create table department;

image-20210916103049285

因此,还需要修改表格的编码方式。

修改表格的默认编码方式,并插入数据试一下

alter table department character set gbk;

发现还是不行,,,,,,,,,

image-20210916103531786

使用命令:status或\s

image-20210916103635099

发现表的编码方式已经是gbk了,但是dname的编码仍然是latin1,所以我们应该对dname属性进行编码方式修改,使用命令:

alter table department modify dname varchar(20) character set gbk;

发现已经成功了!

image-20210916104342876

另外,我们也可以在创建表的时候指定字符集,这里我就不做演示了,感兴趣的小伙伴可以在下方留言.


还有我们可以修改mysql默认字符集编码方式

找到Mysql数据库安装路径,打开my.ini配置文件

image-20210916090034924

修改默认字符集编码方式为gbk,(没有就加上)

image-20210916095837093

重新登录到mysql数据库就可以了

Q.E.D.


樱花庄的一只二刺猿