大部分情况下,通过使用上述的函数来转换十六进制是很简单的。
上面两种技术的主要不同在于大小写的处理。
函数
base64.b16decode()
和
base64.b16encode()
只能操作大写形式的十六进制字母,
而
binascii
模块中的函数大小写都能处理。
还有一点需要注意的是编码函数所产生的输出总是一个字节字符串。
如果想强制以Unicode形式输出,你需要增加一个额外的界面步骤。例如:
>>> h = base64.b16encode(s)
>>> print(h)
b'68656C6C6F'
>>> print(h.decode('ascii'))
68656C6C6F
在解码十六进制数时,函数 b16decode()
和 a2b_hex()
可以接受字节或unicode字符串。
但是,unicode字符串必须仅仅只包含ASCII编码的十六进制数。