记住没:永远不要在 MySQL 中使用 UTF-8!
点击上方“数据管道”,选择“置顶星标”公众号
干货福利,第一时间送达
点击上方“数据管道”,选择“置顶星标”公众号
干货福利,第一时间送达
出自:infoq.cn/article/in-mysql-never-use-utf8-use-utf8
那么什么是编码?什么是 UTF-8?
MySQL 简史
为什么这件事情会让人如此抓狂
总结
Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1
总结
为什么这件事情会让人如此抓狂
使用 CHAR 定义列(在现在看来,CHAR 已经是老古董了,但在那时,在 MySQL 中使用 CHAR 会更快,不过从 2005 年以后就不是这样子了)。
将 CHAR 列的编码设置为“utf8”。
MySQL 简史
我的电脑将“C”映射成 Unicode 字符集中的 67。
我的电脑将 67 编码成“01000011”,并发送给 Web 服务器。
计算机读取“01000011”,得到数字 67,因为 67 被编码成“01000011”。
计算机在 Unicode 字符集中查找 67,找到了“C”。
那么什么是编码?什么是 UTF-8?
MySQL 的“utf8mb4”是真正的“UTF-8”。
MySQL 的“utf8”是一种“专属的编码”,它能够编码的 Unicode 字符并不多。
评论