看啥推荐读物
专栏名称: Java编程
专注Java技术分享,包括Java基础知识/数据结构/算法,Spring/MyBatis/Netty源码分析,高并发/高性能/分布式/微服务架构的原理,JVM性能优化和Java技术领域动态等
今天看啥  ›  专栏  ›  Java编程

记住:永远不要在MySQL中使用"utf8",请使用"utf8mb4"

Java编程  · 公众号  · Java  · 2019-05-19 10:31
译者:brightwang链接:https://www.jianshu.com/p/ab9aa8d4df7d原文链接:https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误:Incorrect string value: ‘\xF0\x9F\x98\x83 for column ‘summary’ at row 1我用的是UTF-8编码的客户端,服务器也是UTF-8编码的,数据库也是,就连要保存的这个字符串“😃 问题的症结在于,MySQL的“utf8”实际上不是真正的UTF-8。“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。MySQL一直没有修复这个bug,他们在2010年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。当然,他们并没有对新的字符集广而告之(可能是因 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照