Python中的Ruby包('H*')等效

rok*_*s0n 1 ruby python pack binascii

我很难搞清楚为什么输出不一样.请注意,如果比较两者,差异非常小OUT.我想要实现的是在Python中使用与Ruby相同的输出.

红宝石:

IN:['034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192'].pack('H*')

OUT:\x03AQ\xA3\xECF\xB5g\nh+\nc9O\x865\x87\xD1\xBC\x97H;\elp\xEBX\xE7\xF0\xAE\xD1\x92

蟒蛇:

IN:unhexlify('034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192') OUT:\x03AQ\xa3\xecF\xb5g\nh+\nc9O\x865\x87\xd1\xbc\x97H;\x1blp\xebX\xe7\xf0\xae\xd1\x92

use*_*ica 5

两种语言都产生了相同的字节序列; 唯一的区别在于它们向您显示这些字节的方式.Ruby有一个字节的\e字符串转义序列1b(ASCII ESC,escape),而Python将该字节显示为\x1b.