Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL指定编码

关于MySQL实现指定编码遇到的坑

作者:Jae1995

这篇文章主要介绍了一个关于MySQL指定编码实现的小坑,文中大家需要注意如果有需要保存emoji符号的字段,记得一定要指定编码为 utf8mb4,感兴趣的朋友一起看看吧

写在前面

环境:MySQL5.7+,MySQL数据库字符编码实现为utf8,表也为utf8

场景:微信授权获取用户信息(包括昵称)并保存到数据库,有的用户成功了,少数用户却失败了

那么为什么会失败呢?

贴上报错日志

Incorrect string value: '\xF0\x9F\x98\x98\xF0\x9F...' for column 'nickname' at row 1

是因为失败的用户微信昵称中带有emoji符号导致的

剖析:

MySQL支持多种字符编码集,如UTF-8、GB2312、GBK等

可以通过 SHOW CHARSET 命令查看。

通常我们会建议使用 UTF-8 作为默认的字符编码方式。

从上图我们可以看到,MySQL数据库有两套 UTF-8 编码实现。

查阅资料,官方解释:

最后

Tips:如果有需要保存emoji符号的字段,记得一定要指定编码为 utf8mb4 。

到此这篇关于一个关于MySQL指定编码实现的小坑的文章就介绍到这了,更多相关MySQL指定编码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文