Python 字符串转十六进制字节

Python String to Hex Bytes

在 python 中,我试图将字符串文字转换为 4 字节的十六进制等价物。这是我正在做的一个例子:

import struct
struct.pack("<i", int("08050030", 16))
>>'0\x00\x05\x08'

为什么输出渲染是这样的?我希望 \x30\x00\x05\x08?

如果 REPL 这样做,您可能会感到惊讶

>>> "hello"
'\x68\x65\x6c\x6c\x6f'

幸运的是它没有。可打印字符被打印为它们自己。不可打印的字符使用 '\n' 等快捷方式,当 none 可用时,最后的办法是使用十六进制表示法。

在文字中的任何地方使用十六进制编码是完全可以接受的

>>> '\x30\x00\x05\x08'
'0\x00\x05\x08'

只是 Python 不喜欢用它们来展示。