2024-06-26 13:23:22 发布
网友
有人能确定这些bytes的符号是什么吗?乍一看,我倾向于认为是“十六进制”,但我不知道像xf1Y和e1fl这样的东西是什么:
bytes
xf1Y
e1fl
b'vy\xe9\xb5\xa2\xba\xf1Y\xe8\xe1fl\x1d\x87\xacC'
当我使用some_text.encode('utf-8')对事物进行编码时,我得到了这个结果
some_text.encode('utf-8')
我正在尝试获取可以传递给使用Python2字节字符串的加密方法的字节
你说得对——这是一种十六进制表示法
在字节文字中,任何不能由可打印ASCII字符(或标准转义符之一\n、\t或\r)表示的字节都表示为\xNN,其中NN是字节的2位十六进制表示
\n
\t
\r
\xNN
让您困惑的是,您将例如\xf1Y误认为是单个转义序列,而实际上它代表两个单独的字节:
\xf1Y
>>> len(b'\xf1Y') 2 >>> [bytes([b]) for b in b'\xf1Y'] [b'\xf1', b'Y']
如果迭代字节对象,将返回字节的整数值:
>>> list(b'vy\xe9\xb5\xa2\xba\xf1Y\xe8\xe1fl\x1d\x87\xacC') [118, 121, 233, 181, 162, 186, 241, 89, 232, 225, 102, 108, 29, 135, 172, 67] >>> bytes([118]) b'v' >>> bytes([121]) b'y' >>> bytes([233]) b'\xe9'
escape sequences in Python string and bytes objects的文档中有一些关于Python理解的转义序列的更多信息(尽管上面的转义序列是Python用于表示字节对象的唯一序列)
你说得对——这是一种十六进制表示法
在字节文字中,任何不能由可打印ASCII字符(或标准转义符之一
\n
、\t
或\r
)表示的字节都表示为\xNN
,其中NN是字节的2位十六进制表示让您困惑的是,您将例如
\xf1Y
误认为是单个转义序列,而实际上它代表两个单独的字节:如果迭代字节对象,将返回字节的整数值:
escape sequences in Python string and bytes objects的文档中有一些关于Python理解的转义序列的更多信息(尽管上面的转义序列是Python用于表示字节对象的唯一序列)
相关问题 更多 >
编程相关推荐