当将一些特殊的汉字如

中文写入数据库乱码及Incorrect string value:

(csdn也显示不出来,只能贴图片),会出现类似Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1的错误,原因是UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。方法如下:


1.在mysql的安装配置文件/etc/my.cnf中添加或修改


[mysqld]


character-set-server=utf8mb4



重新启动mysql



2.将自己创建的表的字符也改成utf8mb4 即可



3.如果还是不行,在配置文件/etc/my.cnf中添加


[mysql]


default-character-set=utf8mb4



重新启动mysql