一、发现问题

最近做的一个项目会自动获取用户昵称,但遇到昵称是特殊字符或表情时,后端会因存不到数据表而报错。

二、分析问题

原来是编码原因,UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去

  1. 使用utf8mb4字符集
  2. mysql的版本必须为v5.5.3或更高
  3. 把数据库的编码改成utf8mb4 – UTF-8 Unicode
  4. 然后需要存储emoji表情的字段选择utf8mb4_general_ci
  5. 数据库连接也需要改为utf8mb4

三、解决问题

(暂未找到解决办法,以后会更新这篇博文)


参考内容: