我们以十六进制字符串 0x790x760x7d0x7d0x80 为例。
ct=input()
hex_list=ct.split('0x')
print(hex_list)
ascii_values=[]
for i in hex_list:
if i!="" :
(ascii_values).append(ascii(i))
print(ascii_values)
我得到这个输出:
['', '79', '76', '7d', '7d', '80']
["'79'", "'76'", "'7d'", "'7d'", "'80'"]
但所需的输出是将十六进制值转换为 ASCII。
最佳答案
这会将字节列表转换为 ASCII,但 0x80 是无效的 ASCII 字符代码。见下文:
ct = '0x790x760x7d0x7d0x80'
hex_list = ct.split('0x')
ascii_values=[]
for i in hex_list:
print(i)
if i != '':
try:
bytes_object = bytes.fromhex(i)
ascii_string = bytes_object.decode("ASCII")
ascii_values.append(ascii(ascii_string))
except UnicodeDecodeError:
print('Invalid ASCII... skipping...')
print(ascii_values)
查看答案here关于 0x80。
关于python - 如何将十六进制列表转换为 ASCII 值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72382321/