binascii.(un)hexlify()
和.en(de)code("hex")
似乎都在字符串十六进制值的字符串表示形式之间转换,字符串本身。我看到的唯一区别是需要导入binascii模块。
我真的很擅长使用十六进制表示法,所以我想问这些是否真的相同,或者是否有更深层次的东西我不知道。
以下两种情况都会返回True
,但这并不意味着它们总是等效的。
'hello'.encode("hex") == binascii.hexlify('hello') # either returns '68656c6c6f'
'68656c6c6f'.decode("hex") == binascii.unhexlify('68656c6c6f') # either returns 'hello'
编辑根据@ sideshowbarker的评论,this answer说:
在Python 3中,您不能再对8位字符串调用encode(),因此十六进制编解码器变得毫无意义并被删除。
这些在Python-2.7中仍然相同吗?我实际上并不知道如何生成7位和8位字符串,因此我不确定如何自己测试。