utf8mb4和utf-8的区别
时间: 2024-06-13 14:06:39 浏览: 188
UTF-8和UTF8mb4都是Unicode编码的一种实现方式,其中UTF-8是Unicode的一种变长字符编码,而UTF8mb4是UTF-8的一种扩展,用于存储四个字节的Unicode字符。具体区别如下:
1.编码范围:UTF-8编码范围是0x000000-0x10FFFF,而UTF8mb4编码范围是0x000000-0x1FFFFF,可以用于存储四个字节的Unicode字符。
2.存储空间:UTF-8编码一个字符需要1-4个字节,而UTF8mb4编码一个字符需要1-4个字节,其中大部分字符只需要3个字节,只有少数字符需要4个字节。
3.排序规则:UTF-8和UTF8mb4对应的排序字符集常用的有utf8_unicode_ci、utf8_general_ci、utf8mb4_unicode_ci、utf8mb4_general_ci等,其中utf8mb4_unicode_ci支持更多的语言和字符集,而utf8mb4_general_ci则更适合一些特定的场景,如只需要支持英文和数字的排序。
示例代码如下:
```python
# UTF-8编码示例
s1 = '你好,世界!'
print('UTF-8编码:', s1.encode('utf-8')) # 输出:b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'
# UTF8mb4编码示例
s2 = '👋 Hello, world!'
print('UTF8mb4编码:', s2.encode('utf8mb4')) # 输出:b'\xf0\x9f\x91\x8b Hello, world!'
```
阅读全文