mysql 1366 Incorrect string value: '\xF0\x9F\x8C\xB8 \xE6...' for column 'nickname' at row 1

mysql   2023-04-11 20:14   293   0  

问题原因:mysql数据库、数据表、字段编码问题,是由于字段存储出现字符表情,而这些表情是按照四个字节一个单位进行编码的,而我们通常使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的,正是这个原因导致将数据存入mysql数据库的时候出现错误,解决方法如下!

1.修改mysql数据库的编码为uft8mb4

ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

2.修改数据表的编码为utf8mb4

ALTER TABLE 表名 CONVERT TO CHARACTER SET 
utf8mb4 
COLLATE 
utf8mb4_general_ci;

3.修改项目链接数据库的配置文件代码,例如:

[DATABASE]
TYPE=mysql
HOSTNAME=你的数据库地址(ip地址)
DATABASE=数据库名称
USERNAME=你的用户名
PASSWORD=你的密码
HOSTPORT=数据库端口(默认3306)
CHARSET=utf8mb4(连接数据库时的编码,这里一定要写成utf8mb4)
PREFIX=xxx_(表前缀)

经过以上步骤,最好重启一下mysql,然后问题得到解决


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。