中文写入数据库乱码及Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1解决

当将一些特殊的汉字如(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

你可能感兴趣的:(mysql)