天问

mysql真假utf8编码

这大概是两年前的故事了,我本地数据库使用最新的mysql5.7.17,而云端使用mysql5.1.73。当我通过php把微信名保存的时候,却发现无法写入数据库。这是怎么回事呢?

本地代码和云端一致,数据库一致(当时以为一致),每个数据库,每个表都采用utf8编码,按道理应该没有问题,却发现极小概率的,某个用户微信名中带了一个表情,就无法正确保存用户信息。于是我就开始查找这个问题根源了。。。

Mysql5.1没有utf8mb4表属性,当我尝试把本地数据库表改为utf8mb4,发现可以存储,但是同步到云端才发现出现问题:Unknown character set: 'utf8mb4'Mysql5.1居然没有utf8mb4表属性 。也就是说必须升级云端数据库才可以修复这个bug !

结论:mysql utf8不是真utf8编码,而utf8mb4才是真utf8编码,但是数据库必须升级到新版本!反正mysql5.1这个bug肯定是存在的!所以赶紧升级到最新版本吧。

附录我的笔记:

博客地址:http://blog.yoqi.me/?p=15924
扫我捐助哦
喜欢 0

这篇文章还没有评论

发表评论