用户表在插入新数据时,报如下错误。
Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\xA6\x85' for column 'nickname' at row 1
第一感觉是编码问题,一看客户的小程序用户名,全是符号,就知道可能是编码不支持表情。
搜索后发现只有utf8mb4
可以支持表情输入。
解决方法如下:
第一步 修改user表的编码为utf8mb4
第二步 修改列名的编码为utf8mb4
测试发现可以插入表情了,也能在小程序正常显示。
命令行修改列编码
字段名要写两次
ALTER TABLE `表名` CHANGE `字段名` `字段名` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
ALTER TABLE ch_post_record CHANGE content content VARCHAR( 240 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;