用户表在插入新数据时,报如下错误。

  1. Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\xA6\x85' for column 'nickname' at row 1

第一感觉是编码问题,一看客户的小程序用户名,全是符号,就知道可能是编码不支持表情。
搜索后发现只有utf8mb4可以支持表情输入。

解决方法如下:
第一步 修改user表的编码为utf8mb4
image.png
第二步 修改列名的编码为utf8mb4
image.png
测试发现可以插入表情了,也能在小程序正常显示。

命令行修改列编码

字段名要写两次

  1. ALTER TABLE `表名` CHANGE `字段名` `字段名` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
  2. ALTER TABLE ch_post_record CHANGE content content VARCHAR( 240 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;