场景:用户昵称带有表情符号等 落库到 utf-8字符集的表中会报错,需要升级字符集为 utf-8mb4 (mysql版本在5.5.3以上支持)
解决方案:
1.修改jdbc连接为 jdbcUrl=jdbc:mysql://192.18.222.26:3306/test (后面不需要有characterEncoding=UTF-8参数)
2.修改mysql的安装配置文件
linux下 修改my.cnf 文件 将所有的关于 utf-8de字符集修改为 utf-8mb4
重启mysql服务
参考文档: https://blog.csdn.net/weixin_29193259/article/details/113212962
https://blog.csdn.net/yown/article/details/52627223
3.修改对应字段的字符集(以下语句同时修改字符集和排序规则)
ALTER TABLE user CHANGE realname realname VARCHAR(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE user CHANGE nickname nickname VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
4.测试 utf-8mb4 字符集 插入数据库
* 直接操作数据库 0xf09f8ebe 参数不要 加 ‘ ’ 符号
UPDATE user set realname = 0xf09f8ebe where username = 'bo123'
页面显示效果图: