- 中文插入mysql显示" ?????"
输入的中文编码是utf8的,建的库是utf8的,但是插入mysql总是乱码,一堆"???"
解决方式:
检查数据库连接:
jdbc:mysql://1270.0.01:3306/shop?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true
是否包含:useUnicode=true&characterEncoding=utf-8
,如果不包含加上
- Incorrect string value: ‘\xF0\x9F\x8D\xAD’ for column ‘XXX’ at row 1
原因:UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。需要把数据库和表的字符集改为utf8mb4
解决方式:
第一步:修改数据库和表的字符集为utf8mb4
如果不生效,可以进行第二步
第二步: 修改/etc/my.cnf,重启sql服务
在[mysqld]下增加character-set-server=utf8mb4
[mysqld]
character-set-server=utf8mb4