数据库编码问题,插入错误

错误提示:Incorrect string value: '\xF0\x9F\x91\xA3\xE3\x80...' for column 'nickname' at row 1

数据库编码是:utf8_general_ci

获取微信号的昵称。当遇到奇葩昵称(图形)时就出错。
当遇到这样的的昵称时就出错。:图示昵称:

这个怎么消除错误?

阅读 11.1k
1 个回答

E磨叽(好吧,emoji,もじ[moji]就是日语的“文字”)字符仍然是标准的Unicode字符。但在使用UTF-8字节序列化方法表示时,部分emoji字符会落入U+10000 - U+10FFFF这个区间,而此区间的Unicode值表示为UTF-8时需要4个字节。

mysql的utf8_general_ci只支持最多3字节的UTF-8字符,所以栽就栽在这儿了。

请换用新版MySQL提供的utf8mb4字符集,这个字符集支持4字节的UTF-8字符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进