听起来您认为某些ASCII数据存储在该十六进制字符串中。如果是这种情况,十六进制字符串中的每 2 个字符代表 ASCII 文本的一个字节。如果是这种情况,您可以这样做来解码它:
>>> a = "12104c06134e5709140f104f02521b0a0442020c4d070b184f4815541f0800484e1e0241061d064d540b0a020210194510164d4f3a005343004e430e1e1d0a524612171b0117001b0e45431c0c1d160a520d11744e19061a114d0e55174f084e543714050b174353541b48070e000e4d"
>>> bytes = [a[i:i+2] for i in range(0,len(a),2)]
>>> s_decoded = [chr(int(c,16)) for c in bytes]
>>> ''.join(s_decoded)
'\x12\x10L\x06\x13NW\t\x14\x0f\x10O\x02R\x1b\n\x04B\x02\x0cM\x07\x0b\x18OH\x15T\x1f\x08\x00HN\x1e\x02A\x06\x1d\x06MT\x0b\n\x02\x02\x10\x19E\x10\x16MO:\x00SC\x00NC\x0e\x1e\x1d\nRF\x12\x17\x1b\x01\x17\x00\x1b\x0eEC\x1c\x0c\x1d\x16\nR\r\x11tN\x19\x06\x1a\x11M\x0eU\x17O\x08NT7\x14\x05\x0b\x17CST\x1bH\x07\x0e\x00\x0eM'
但是,正如您所看到的,这些字符中的大多数都是“不可打印”字符(即它们的 ASCII 值不编码一些人类可读的字符,如“A”或“d”)。这是一个解码包含可打印 ASCII 字符的十六进制字符串的示例:
>>> a2 = "43616c6562"
>>> bytes2 = [a2[i:i+2] for i in range(0,len(a2),2)]
>>> bytes2
['43', '61', '6c', '65', '62']
>>> ''.join([chr(int(c,16)) for c in bytes2])
'Caleb'
>>>