一、为什么需要使用utf8mb4。
在mysql、MariaDB中:
- MySQL的“utf8mb4”是真正的“UTF-8”。长度是4个字节。
- MySQL的“utf8”是mysql自己的一种“专属的编码”,它的最大字符长度为 3 字节。只是“UTF-8”标准的一个子集。
所以Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和一些不常用的汉字,存储就会报错。
二、修改数据库连接。参考文档。
原jdbcUrl:jdbc:mysql:///dbname?useUnicode=true&characterEncoding=UTF-8需要去掉编码参数useUnicode=true&characterEncoding=UTF-8 改为: jdbcUrl:jdbc:mysql:///dbname
参考文档:
https://help.aliyun.com/knowledge_detail/41702.html
http://ju.outofmemory.cn/entry/359647
https://my.oschina.net/u/3452433/blog/887908
https://yq.aliyun.com/articles/674741