公司用的是mysql5.6,该异常是mysql字符集问题,mysql支持的 utf8编码最大字符长度为 3 字节,如果遇到表情符这样的4 字节的字符就会插入异常。
解决方法:
1.在数据库层面处理,重新设置数据库编码,对数据库数据进行迁移,对单数据库应用需停机操作;
2.在程序中进行处理,一般项目都使用了连接池,可以在物理连接初始化的时候执行set names utf8mb4;
如c3p0、druid;
a.c3p0参考:配置文件1、配置文件2、InitSqlConnectionCustomizer扩展类、具体使用
b.druid参考:园子里找的一个阿里druid 介绍及配置,这里关注connectionInitSqls/initConnectionSqls属性;
收工。
生产环境表情符录入异常:Incorrect string value: '\xB0...' for column...
阅读(805) 评论(0)