如果你使用MySQL数据库 , 请记住一点:你应该总是使用utf8mb4编码 , 而不是utf8编码 。
MySQL编码实现标准的UTF-8字符编码可以用4个字节去编码最多21位字符 , 这几乎包括了世界上所有的字符集了 , 然而在MySQL里实现的UTF-8编码使用3个字节去编码最多16位字符(即只能存放Unicode编码从0x0000到0xFFFF的字符) 。好在MySQL在2010年实现了一个以utf8mb4命名的UTF-8实现 , 并在5.5.3版本进行了发布 。简单说utf8mb4是utf8的超集并完全兼容utf8 , 能够用4个字节存储更多的字符 。
Unicode编码Unicode并不是真正意义上的编码技术 , 它只是将世界上的所有字符定义了一个编号并形成标准;它规定了字符的二进制代码 , 却没有规定这个二进制代码应该如何存储 。
UTF-8编码我们常用的UTF-8、GBK等编码技术(准确来说应该是字符编码存储技术)的核心就是规定了Unicode的二进制代码应该如何存储 。比如说我把Unicode的二进制代码高位补0后存储起来也是一种编码方案 , 只不过这种方案太low了 。
UTF-8的编码规则很简单 , 只有二条:
(1)对于单字节的符号 , 字节的第一位设为0 , 后面7位为这个符号的Unicode码 。因此对于英文字母 , UTF-8编码和ASCII码是相同的 。
2)对于n字节的符号(n>1) , 第一个字节的前n位都设为1 , 第n+1位设为0 , 后面字节的前两位一律设为10 。剩下的没有提及的二进制位 , 全部为这个符号的 Unicode 码 。
文章插图
【不要在MySQL数据库中使用UTF-8编码】
推荐阅读
- 红茶是熟茶吗,不同山头原料发酵的熟茶
- 苦丁茶是药不是茶,苦丁茶又称为美容茶
- ipad air4不能插耳机吗?ipad air4自带耳机吗?
- 松下和西门子哪个好冰箱怎么样好不好?松下和西门子冰箱哪个更好?
- 未经他人苦莫劝他人善下一句是什么?
- 食欲不振怎么办 夏季“以热攻热”开胃食疗
- 不孕不育怎么办 9种药膳食疗助你做父母
- 招聘|受不了职场噪音,我离职了
- 清康熙帝决定不再修长城是因为 古代为什么要修建长城
- 导游|小饭店老板/导游皆沦为2022十大最困难职业,前三名你肯定想不到