重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章给大家主要讲的是关于建Mysql数据库时为什么不适用utf8的内容,感兴趣的话就一起来看看这篇文章吧,相信看完建Mysql数据库时为什么不适用utf8对大家多少有点参考价值吧。
创新互联公司长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为咸宁企业提供专业的网站建设、做网站,咸宁网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。当然,现在建数据库时,大家一般都会使用utf8mb4,那为什么不适用utf8呢,其实是一个坑。
mysql中的utf8只支持每个字符三个字节,而真正的UTF-8是每个字符最多四字节,这可以算数Mysql的一个bug。在mysql中,真正支持UTF-8的字符集是utf8mb4,占用四个字节。
历史数据是这样的:
2003年,MySQL 从 4.1 版本开始支持 UTF-8,但是这是一个旧版的标准(RFC 2279),新版的UTF-8标准(RFC 3629)是之后才出现的。
RFC 2279最多支持每个字符 6 个字节。但是在2002年9月,MySQL源代码进行了一次调整:“UTF8 现在最多只支持 3 个字节的序列”。至于调整的原因,目前也已经无从考证了。
可以猜测一下,大概是当初的设计者想要占用更少的空间,达到更快的查询速度吧。6个字节有点多,3个字节足够了。但是这也就造成了由于存储空间不够,不能兼容RFC 3629标准。
所以utf8可以说是mysql的独创的一套字符集,并不符合字面给人的认知。人们发现了他的问题之后,期待MySQL进行修复。不过可能是因为种种原因吧,mysql并没有修复utf8的问题,而是在 2010 年重新发布了“utf8mb4”来支持真正的UTF-8。
所以呢,重要的事说三遍。
mysql中,utf8不是真正的支持UTF-8的字符集,utf8mb4才是。
mysql中,utf8不是真正的支持UTF-8的字符集,utf8mb4才是。
mysql中,utf8不是真正的支持UTF-8的字符集,utf8mb4才是。
以上关于建Mysql数据库时为什么不适用utf8详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。