📅  最后修改于: 2023-12-03 15:07:19.851000             🧑  作者: Mango
如果你需要将十六进制数据转换为字符串,Python提供了一些方法来解决这个问题。下面我们将会介绍这些方法。
import binascii
hex_string = '68656c6c6f20776f726c64' # 十六进制字符串
byte_string = binascii.unhexlify(hex_string) # 将十六进制字符串转换为字节串
string = byte_string.decode('utf-8') # 将字节串转换为字符串
print(string) # 输出 'hello world'
binascii.unhexlify()
将十六进制字符串转换为字节串。注意,unhexlify()
方法返回的是一个字节串,所以需要使用decode()
将其转换为字符串。decode()
的参数指定了使用的编码,这里我们使用UTF-8。如果你正在使用Python 3.x版本,则可以使用bytes.fromhex()
方法来转换十六进制字节串。
hex_string = '68656c6c6f20776f726c64' # 十六进制字符串
byte_string = bytes.fromhex(hex_string) # 将十六进制字符串转换为字节串
string = byte_string.decode('utf-8') # 将字节串转换为字符串
print(string)
import struct
hex_string = '68656c6c6f20776f726c64' # 十六进制字符串
byte_string = bytes.fromhex(hex_string) # 将十六进制字符串转换为字节串
# 使用struct.unpack()方法将字节串转换为字符串
# '11s'代表长度为11,格式为字符串
string = struct.unpack('11s', byte_string)[0].decode('utf-8')
print(string)
使用struct.unpack()
可以按照一定的格式将字节串解析成特定的数据类型。在这个例子中,我们只需要将字节串转换成字符串,所以使用格式字符串'11s'
。
说明: