用python写一个16进制转换文本字符串
时间: 2023-01-12 14:29:26 浏览: 104
可以使用 Python 的内置函数 `bytes.fromhex()` 将 16 进制字符串转换为字节串,然后再使用 `str()` 将字节串转换为文本字符串。
例如:
```
hex_string = '48656c6c6f20576f726c64'
text = str(bytes.fromhex(hex_string), 'utf-8')
print(text) # 输出 'Hello World'
```
也可以使用 Python 的内置函数 `binascii.unhexlify()` 将 16 进制字符串转换为字节串,然后再使用 `str()` 将字节串转换为文本字符串。
例如:
```
import binascii
hex_string = '48656c6c6f20576f726c64'
text = str(binascii.unhexlify(hex_string), 'utf-8')
print(text) # 输出 'Hello World'
```
注意:16 进制字符串中每两个字符对应一个字节,因此 16 进制字符串的长度必须是偶数。
相关问题
用python写一个16进制list转换文本字符串
可以使用 Python 中的 bytearray 函数将 16 进制 list 转换为文本字符串。例如,假设我们有一个包含 16 进制值的列表 byte_list,可以按照以下方式将其转换为文本字符串:
```python
byte_list = [0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64] # 16进制值列表
text_string = bytearray(byte_list).decode() # 转换为文本字符串
print(text_string) # 输出:Hello World
```
在上面的代码中,我们使用了 bytearray 函数将 byte_list 转换为一个字节数组,然后使用 decode() 方法将其转换为一个文本字符串。注意,这里的 16 进制值是以十六进制方式表示的整数,因此需要在前面加上 0x 前缀。
16进制和文本字符串转换
16进制和文本字符串之间的转换可以使用Python内置的函数进行实现。
将文本字符串转换为16进制字符串:
```python
text = "hello world"
hex_string = text.encode("utf-8").hex()
print(hex_string) # 68656c6c6f20776f726c64
```
将16进制字符串转换为文本字符串:
```python
hex_string = "68656c6c6f20776f726c64"
text = bytes.fromhex(hex_string).decode("utf-8")
print(text) # hello world
```
其中,`encode()`函数将文本字符串转换为字节串,`hex()`函数将字节串转换为16进制字符串。`fromhex()`函数将16进制字符串转换为字节串,`decode()`函数将字节串转换为文本字符串。需要注意的是,编码方式需要一致,这里使用的是UTF-8。
阅读全文