Python 中 16 进制字符串转换91


在 Python 中,我们可以使用特定的方法将 16 进制字符串转换为字符串。16 进制字符串是用十六进制数字 (0-9, a-f) 表示的文本格式,而字符串则是由 Unicode 字符组成的文本序列。

使用 () 函数

binascii 模块提供了一个名为 unhexlify() 的函数,用于将 16 进制字符串解码为字节数组。我们可以再将字节数组解码为字符串,具体如下:```python
import binascii
hex_string = "48656c6c6f" # "Hello" 的 16 进制表示
byte_array = (hex_string)
string = ("utf-8")
print(string) # 输出:Hello
```

使用 () 函数

zlib 模块提供了一个名为 decompress() 的函数,也可用于解码 16 进制字符串。但需要注意的是,此方法使用 zlib 压缩算法,仅适用于已使用 zlib 压缩的 16 进制字符串。具体如下:```python
import zlib
hex_string = "789c9467889c4a9434938d43a4898d982893b4933493" # "Hello" 的 zlib 压缩 16 进制表示
byte_array = (hex_string)
string = (byte_array).decode("utf-8")
print(string) # 输出:Hello
```

使用 () 方法

在 Python 3 中,bytes 类型提供了一个名为 fromhex() 的方法,用于直接从 16 进制字符串创建字节数组。我们可以再将字节数组解码为字符串,具体如下:```python
hex_string = "48656c6c6f" # "Hello" 的 16 进制表示
byte_array = (hex_string)
string = ("utf-8")
print(string) # 输出:Hello
```

自定义函数

我们还可以定义一个自定义函数来执行 16 进制字符串到字符串的转换:```python
def hex_to_string(hex_string):
"""将 16 进制字符串转换为字符串。
:param hex_string: 要转换的 16 进制字符串。
:return: 转换后的字符串。
"""
byte_array = (hex_string)
string = ("utf-8")
return string

hex_string = "48656c6c6f" # "Hello" 的 16 进制表示
string = hex_to_string(hex_string)
print(string) # 输出:Hello
```

注意事项* 确保 16 进制字符串是有效的,包含 0-9 和 a-f 范围内的字符。
* 如果 16 进制字符串表示非文本数据,例如图像或二进制文件,则转换后的字符串可能包含不可打印字符。
* 在将字节数组解码为字符串时,务必要指定正确的字符编码(例如 utf-8)。

2024-10-17


上一篇:Python字符串转小数的全面指南

下一篇:通过 Python 批量重命名文件,轻松提升工作效率