Ruby pack('H*') 相当于 Python
Ruby pack('H*') equivalent in Python
我很难弄清楚为什么输出不一样。请注意,如果比较两个 OUT
,差异非常小。我想要实现的是 Python 中的输出与 Ruby 中的输出相同。
Ruby:
IN:['034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192'].pack('H*')
OUT:\x03AQ\xA3\xECF\xB5g\nh+\nc9O\x865\x87\xD1\xBC\x97H;\elp\xEBX\xE7\xF0\xAE\xD1\x92
Python:
IN:unhexlify('034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192')
OUT:\x03AQ\xa3\xecF\xb5g\nh+\nc9O\x865\x87\xd1\xbc\x97H;\x1blp\xebX\xe7\xf0\xae\xd1\x92
两种语言都产生了相同的字节序列;唯一的区别在于它们向您显示这些字节的方式。 Ruby 有一个 \e
字符串转义序列用于 1b
字节(ASCII ESC,转义),而 Python 将该字节显示为 \x1b
.
我很难弄清楚为什么输出不一样。请注意,如果比较两个 OUT
,差异非常小。我想要实现的是 Python 中的输出与 Ruby 中的输出相同。
Ruby:
IN:['034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192'].pack('H*')
OUT:\x03AQ\xA3\xECF\xB5g\nh+\nc9O\x865\x87\xD1\xBC\x97H;\elp\xEBX\xE7\xF0\xAE\xD1\x92
Python:
IN:unhexlify('034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192')
OUT:\x03AQ\xa3\xecF\xb5g\nh+\nc9O\x865\x87\xd1\xbc\x97H;\x1blp\xebX\xe7\xf0\xae\xd1\x92
两种语言都产生了相同的字节序列;唯一的区别在于它们向您显示这些字节的方式。 Ruby 有一个 \e
字符串转义序列用于 1b
字节(ASCII ESC,转义),而 Python 将该字节显示为 \x1b
.