hal*_*leo -1 python unicode utf-8
UTF8 中的 '\x80' 占用多少字节?
在 Python 中我写:
>>> '\x80'.encode('utf8')
b'\xc2\x80'
Run Code Online (Sandbox Code Playgroud)
这表明 '\x80' 转换为两个字节。
另外,反过来:
>>> b'\x80'.decode()
>>> Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)
这是否意味着字节'\x80' 本身在 UTF-8 中没有(字符)含义?
的Unicode字符U + 0080(这是一个控制字:PAD)被编码为以UTF-8的两个字节,这是为0xC2和0x80的。
仅包含字节 0x80的字节流本身并不代表任何有效的 UTF-8 编码(即该字节本身就是错误格式的 UTF-8 流)。
基本上,UTF-8 流中的每个字节都可以归类为三种不同类型之一:
0x80 是一个连续字节,所以它不能独立存在(它必须以一个前导字节和可能的其他一些连续字节为有效)。
在对UTF-8维基百科的文章有很好的例子一些非常广泛的文件。
* 请注意,由于各种原因,某些前导字节永远不会出现在有效的 UTF-8 中,因此实际使用的前导字节范围较小。同样, 0xFE 和 0xFF 从未使用过,因此也永远不会出现在有效的 UTF-8 中。
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |