脚本宝典收集整理的这篇文章主要介绍了关于MySQL实现指定编码遇到的坑,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
环境: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指定编码内容请搜索脚本宝典以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本宝典!
以上是脚本宝典为你收集整理的关于MySQL实现指定编码遇到的坑全部内容,希望文章能够帮你解决关于MySQL实现指定编码遇到的坑所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。