这是标准库文档中对该函数的描述.
binascii.a2b_hex(hexstr)
返回十六进制字符串hexstr表示的二进制数据.该函数与b2a_hex()的反函数.hexstr必须包含偶数个十六进制数字(可以是大写或小写),否则会引发TypeError.
但是,以下代码示例打印出来 Hello World!
import binascii
print binascii.a2b_hex('48656c6c6f20576f726c6421')
Run Code Online (Sandbox Code Playgroud)
为什么print将二进制数据解释为字符串?到底发生了什么?
因为在Python 2中,所有二进制数据都表示为字符串.该str类型基本上只是一个字节序列.
在Python 3中,基本str类型是unicode值(unicode()在Python 2中),Python 2 str类型已重命名为bytes,并且a2b_hex函数输出字节:
>>> import binascii
>>> binascii.a2b_hex('48656c6c6f20576f726c6421')
b'Hello World!'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5952 次 |
| 最近记录: |