2024-04-19 06:40:47 发布
网友
我只是在玩unicode
s='ab' s.encode('utf8') Out[44]: b'ab' s.encode('utf16') Out[45]: b'\xff\xfea\x00b\x00' s.encode('utf32') Out[46]: b'\xff\xfe\x00\x00a\x00\x00\x00b\x00\x00\x00'
我的问题是为什么utf-8只返回字符串而其他编码返回正确的输出? 第一个编码utf-8不应该像utf-16和utf-32返回字节编码吗?在
I was expecting something like b'\x..\x..
b'ab' b'\xff\xfea\x00b\x00' b'\xff\xfe\x00\x00a\x00\x00\x00b\x00\x00\x00'
是每个字节序列的最简单的Python表示。a和b按字面意思包含在表示中,因为这是一个更短、更可读的选项;对于字节\x00则不是这样,因为这是一个不可见的控制字符。在
a
b
\x00
尽管如此,您当然可以编写a和b,因为\x也可以转义,从而得到完全相等的文本:
\x
UTF-8的一个优势和具体的设计目标是将普通的旧ASCII字符编码为单个字节,而不需要任何额外的空字节或BOM信令。在
标准ascii字符在utf-8中对自身进行编码。您的utf-8编码正确。这是utf-8的优点之一。在
utf-8
是每个字节序列的最简单的Python表示。
a
和b
按字面意思包含在表示中,因为这是一个更短、更可读的选项;对于字节\x00
则不是这样,因为这是一个不可见的控制字符。在尽管如此,您当然可以编写
^{pr2}$a
和b
,因为\x
也可以转义,从而得到完全相等的文本:UTF-8的一个优势和具体的设计目标是将普通的旧ASCII字符编码为单个字节,而不需要任何额外的空字节或BOM信令。在
标准ascii字符在
utf-8
中对自身进行编码。您的utf-8
编码正确。这是utf-8
的优点之一。在相关问题 更多 >
编程相关推荐