5 python byte character-encoding python-3.x python-3.5
有人可以确定这些符号bytes是什么吗?乍一看,我倾向于认为"十六进制",但我不认识像什么事情xf1Y和e1fl有:
b'vy\xe9\xb5\xa2\xba\xf1Y\xe8\xe1fl\x1d\x87\xacC'
Run Code Online (Sandbox Code Playgroud)
当我用东西编码时,我得到了这个some_text.encode('utf-8').
我试图获得我可以传递给使用Python 2的字节字符串的加密方法的字节.
你是对的 - 这是一个十六进制表示法.
在字面一个字节,这不能由可打印的ASCII字符来表示(或标准逃逸的一个任意字节\n,\t或\r)被表示为\xNN,其中NN是字节的2位十六进制表示.
令你困惑的是你错误地例如\xf1Y单个转义序列,实际上它代表两个独立的字节:
>>> len(b'\xf1Y')
2
>>> [bytes([b]) for b in b'\xf1Y']
[b'\xf1', b'Y']
Run Code Online (Sandbox Code Playgroud)
如果迭代一个bytes对象,你将得到字节的整数值:
>>> 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'
Run Code Online (Sandbox Code Playgroud)
Python字符串和字节对象中的转义序列的文档有关于Python理解的转义序列的更多信息(尽管上面的那些是它用来表示字节对象的唯一信息).
| 归档时间: |
|
| 查看次数: |
907 次 |
| 最近记录: |