要将16进制字符串转换成字符串,可以使用Python自带的binascii库的unhexlify()方法,具体攻略如下:
1. 导入binascii库
在使用前需要先导入python的binascii库,可以使用以下代码:
import binascii
2. 使用unhexlify()方法将16进制字符串解码成二进制形式
hex_str = "546869732069732061207465737420737472696e67"
bin_str = binascii.unhexlify(hex_str)
在上述代码中,我们将一个16进制字符串"546869732069732061207465737420737472696e67"传入到了binascii.unhexlify()方法中,该方法返回的结果是一个bytes类型的二进制字符串。
3. 将二进制字符串转换成Unicode字符串
接下来需要将二进制字符串转换成Unicode字符串,这里需要根据具体需要进行转换。若需要解码成字符串,可使用bytes类的decode()方法进行解码,示例如下:
unicode_str = bin_str.decode()
在上述代码中,我们调用了bytes类的decode()方法,并将结果赋值给unicode_str变量,该变量即为Unicode字符串。
示例说明
以下是两个使用示例,分别将16进制字符串解码成ASCII字符串和Unicode字符串。
import binascii
# 示例1:将16进制字符串解码成ASCII字符串
hex_str = "68656c6c6f20776f726c64"
bin_str = binascii.unhexlify(hex_str)
ascii_str = bin_str.decode("ascii")
print(ascii_str)
# 示例2:将16进制字符串解码成Unicode字符串
hex_str = "546869732069732061207465737420737472696e67"
bin_str = binascii.unhexlify(hex_str)
unicode_str = bin_str.decode("unicode_escape")
print(unicode_str)
在示例1中,我们将16进制字符串"68656c6c6f20776f726c64"解码成ASCII字符串"hello world"并打印输出;在示例2中,我们将16进制字符串"546869732069732061207465737420737472696e67"解码成Unicode字符串"This is a test string"并打印输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3.4 将16进制转成字符串的实例 - Python技术站