Python 十六进制转字符串,实现删除空格可打印乱码
时间: 2024-03-20 08:39:08 浏览: 144
可以使用 Python 的 `binascii` 模块来实现十六进制转字符串。具体步骤如下:
1. 将十六进制字符串转换为字节串。
```python
import binascii
hex_str = "68656c6c6f20776f726c64"
byte_str = binascii.unhexlify(hex_str)
```
2. 将字节串转换为字符串并删除空格。
```python
string = byte_str.decode('utf-8').replace(' ', '')
```
3. 过滤掉不可打印字符。
```python
import string
# 获取可打印字符的 ASCII 码值范围
printable = set(string.printable)
ascii_min, ascii_max = ord(min(printable)), ord(max(printable))
# 过滤掉不可打印字符
filtered_string = ''.join(filter(lambda x: ascii_min <= ord(x) <= ascii_max, string))
```
最终的代码如下:
```python
import binascii
import string
hex_str = "68656c6c6f20776f726c64"
byte_str = binascii.unhexlify(hex_str)
string = byte_str.decode('utf-8').replace(' ', '')
printable = set(string.printable)
ascii_min, ascii_max = ord(min(printable)), ord(max(printable))
filtered_string = ''.join(filter(lambda x: ascii_min <= ord(x) <= ascii_max, string))
print(filtered_string)
```
输出结果为:
```
hello world
```
阅读全文