【发布时间】:2012-11-13 16:23:47
【问题描述】:
我有一个十六进制字符串:
12104c06134e5709140f104f02521b0a0442020c4d070b184f4815541f0800484e1e0241061d064d540b0a020210194510164d4f3a005343004e430e1e1d0a524612171b0117001b0e45431c0c1d160a520d11744e19061a114d0e55174f084e543714050b174353541b48070e000e4d
如果你很好奇,我只是想解码成可读的文本(虽然这是一个加密问题,所以解码后的文本仍然看起来是无意义的,但不是十六进制的)。为此,我将上述消息保存到变量 msg 中。然后我执行了这个操作:
msg.decode('hex')
但是,当我打印该值时,我得到了一些字符、一堆奇怪的方块,以及多行碎片化的文本。这是怎么回事?
【问题讨论】:
-
你希望它打印什么?
-
好吧,我对十六进制转换不够精通,无法准确表示我的期望,但基本上是一串英文字符和空格,一些大写一些小写。
-
当我在这里转换你的十六进制 (string-functions.com/hex-string.aspx) 我得到和你一样的结果。十六进制不代表您认为的含义,或者您生成了不正确的十六进制字符串。
-
虽然python挺强大的,但我觉得没有
solve_crypto_riddle的功能。 -
十六进制字符串中的许多值不会解码为 ASCII 或 utf-8 字符,因此如果打印出来,它将是不可读的非字符垃圾,解码后混合了一些常规字符。