Python 3字节的奇怪表示法

2024-06-26 13:22:13 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能辨认出这些bytes的符号是什么吗?乍一看,我倾向于认为“十六进制”,但我不知道xf1Y和{}是什么:

b'vy\xe9\xb5\xa2\xba\xf1Y\xe8\xe1fl\x1d\x87\xacC'

当我用some_text.encode('utf-8')编码时,我得到了这个。在

我正在尝试获取可以传递给使用python2字节字符串的加密方法的字节。在


Tags: 字节bytes符号somexaccvyxe9xe8
1条回答
网友
1楼 · 发布于 2024-06-26 13:22:13

你说得对-这是一个十六进制符号。在

在字节文字中,任何不能用可打印的ASCII字符(或标准转义符\n\t或{})表示为\xNN,其中NN是字节的2位十六进制表示。在

让您困惑的是,您将\xf1Y误认为是单个转义序列,而实际上它代表两个独立的字节:

>>> len(b'\xf1Y')
2
>>> [bytes([b]) for b in b'\xf1Y']
[b'\xf1', b'Y']

如果迭代一个bytes对象,将得到bytes的整数值:

^{pr2}$

escape sequences in Python string and bytes objects的文档中有更多关于Python理解的转义序列的信息(尽管上面的是它用来表示bytes对象的唯一的转义序列)。在

相关问题 更多 >