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ハッシュです。

Python3.3バージョンを使用しています

4

1 に答える 1

1

Pythonは、印刷可能なバイト\xabにエスケープコードを使用しません。たとえば、バイトは代わりに印刷可能な文字として表示されます。\x344

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

代わりにASCII文字として表示できる値の1バイトおきにも同じことが言えます。\x56として印刷されV、など\x78として表示されます。x

これは通常の動作ですが、値は同じです。

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