0

我有以下代码:

src = b'\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a'
quoted = quote_from_bytes(src)
print(quoted)
unquoted = unquote_to_bytes(quoted)
print(unquoted)

看不懂,为什么要print(unquoted)退货 b'\x124Vx\x9a\xbc\xde\xf1#Eg\x89\xab\xcd\xef\x124Vx\x9a'

反而b'\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a'

src 是一个 sha1 哈希。

我使用 Python 3.3 版本

4

1 回答 1

1

Python 不对可打印字节使用\xab转义码。例如,字节显示为可打印字符:\x344

>>> print(b'\x34')
b'4'

值中可以显示为 ASCII 字符的每个其他字节也是如此;\x56打印为V,\x78显示为x等。

这是正常行为,值仍然相同:

>>> b'\x34' == b'4'
True
于 2013-02-15T13:53:36.333 回答