mysql 存储 特殊字符 Emoji 出错。

Incorrect string value: '\xF0\x9F\x90\xA3' for column 'name'

这个问题,原因是UTF-8编码有可能是两个、三个、四个字节。Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。
我的解决方案是这样的
1.在mysql的安装目录下找到my.ini,作如下修改:

[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4

修改后重启Mysql

--------------------- 本文来自 战斗机金头蛮 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010737354/article/details/52456668?utm_source=copy

修改完毕只有,需要在创建表的时候设置上编码

ENGINE=InnoDB AUTO_INCREMENT=33 CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'

在字符也加上 `name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL 

在数据库连接地址上加上 useUnicode=true&zeroDateTimeBehavior=convertToNull

这样就可以把值加入到数据库中 

eg:

复制粘贴出来就是:Noodlescar?

 

你可能感兴趣的:(java,mysql)