记住:永远不要在 MySQL 中使用 UTF-8
开发者技术前线
2020-08-04 23:04
点击“开发者技术前线”,选择“星标?”
在看|星标|留言, 真爱
Incorrect string value: ‘\xF0\x9F\x98\x83 <…’ for column ‘summary’ at row 1
MySQL 的“utf8mb4”是真正的“UTF-8”。
MySQL 的“utf8”是一种“专属的编码”,它能够编码的 Unicode 字符并不多。
那么什么是编码?什么是 UTF-8?
计算机读取“01000011”,得到数字 67,因为 67 被编码成“01000011”。
计算机在 Unicode 字符集中查找 67,找到了“C”。
我的电脑将“C”映射成 Unicode 字符集中的 67。
我的电脑将 67 编码成“01000011”,并发送给 Web 服务器。
MySQL 简史
使用 CHAR 定义列(在现在看来,CHAR 已经是老古董了,但在那时,在 MySQL 中使用 CHAR 会更快,不过从 2005 年以后就不是这样子了)。
将 CHAR 列的编码设置为“utf8”。
为什么这件事情会让人如此抓狂
总结
END 前线推出学习交流群,加群一定要备注: 研究/工作方向+地点+学校/公司+昵称(如Java+上海+上交+可可) 根据格式备注,可更快被通过且邀请进群,领取一份专属学习礼包
扫码加我微信进群,内推和技术交流,大佬们零距离
开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。
面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...
评论