python 如何将十六进制值转换为字符串? |
您所在的位置:网站首页 › python3字符串转16进制 › python 如何将十六进制值转换为字符串? |
Python 中提供了几种将十六进制值转换为字符串的方法,下面将介绍其中的三种方法。 1. 使用 bytes.fromhex() 方法bytes.fromhex() 方法可以将十六进制字符串转换为字节串,然后再将字节串转换为字符串。例如: hex_str = "48656c6c6f20576f726c64" byte_str = bytes.fromhex(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 输出:Hello World其中,bytes.fromhex() 方法将十六进制字符串转换为字节串,byte_str.decode("utf-8") 方法将字节串转换为字符串。 需要注意的是,bytes.fromhex() 方法只能处理没有空格的十六进制字符串,如果输入的十六进制字符串包含空格,需要先将空格删除,例如: hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64" hex_str = hex_str.replace(" ", "") # 删除空格 byte_str = bytes.fromhex(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 输出:Hello World 2. 使用 binascii.unhexlify() 方法binascii.unhexlify() 方法可以将十六进制字符串转换为字节串,然后再将字节串转换为字符串。例如: import binascii hex_str = "48656c6c6f20576f726c64" byte_str = binascii.unhexlify(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 输出:Hello World其中,binascii.unhexlify() 方法将十六进制字符串转换为字节串,byte_str.decode("utf-8") 方法将字节串转换为字符串。 需要注意的是,binascii.unhexlify() 方法只能处理没有空格的十六进制字符串,如果输入的十六进制字符串包含空格,需要先将空格删除,例如: import binascii hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64" hex_str = hex_str.replace(" ", "") # 删除空格 byte_str = binascii.unhexlify(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 输出:Hello World 3. 使用 codecs.decode() 方法codecs.decode() 方法可以将十六进制字符串直接转换为字符串。例如: import codecs hex_str = "48656c6c6f20576f726c64" str_result = codecs.decode(hex_str, "hex").decode("utf-8") print(str_result) # 输出:Hello World其中,codecs.decode() 方法将十六进制字符串直接转换为字节串,byte_str.decode("utf-8") 方法将字节串转换为字符串。 需要注意的是,codecs.decode() 方法只能处理没有空格的十六进制字符串,如果输入的十六进制字符串包含空格,需要先将空格删除,例如: import codecs hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64" hex_str = hex_str.replace(" ", "") # 删除空格 str_result = codecs.decode(hex_str, "hex").decode("utf-8") print(str_result) # 输出:Hello World这三种方法都可以将十六进制值转换为字符串,选择哪一种方法取决于你的使用场景和偏好。需要注意的是,如果十六进制字符串不合法,这些方法都会抛出异常,需要对输入的十六进制字符串进行合法性检查。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |