我有一个"\x89PNG"
要转换为纯文本的字符串。
我参考了http://love-python.blogspot.in/2008/05/convert-hext-to-ascii-string-in-python.html 但我发现它有点复杂。这可以以更简单的方式完成吗?
我有一个"\x89PNG"
要转换为纯文本的字符串。
我参考了http://love-python.blogspot.in/2008/05/convert-hext-to-ascii-string-in-python.html 但我发现它有点复杂。这可以以更简单的方式完成吗?
\x89PNG
是纯文本。只需尝试打印它:
>>> s = '\x89PNG'
>>> print s
┴PNG
链接中的配方什么都不做:
>>> hex_string = '\x70f=l\x26hl=en\x26geocode=\x26q\x3c'
>>> ascii_string = reformat_content(hex_string)
>>> hex_string == ascii_string
True
真正的十六进制<->明文编码\解码是小菜一碟:
>>> s.encode('hex')
'89504e47'
>>> '89504e47'.decode('hex')
'\x89PNG'
但是,您可能会遇到字符串问题,例如'\x70f=l\x26hl=en\x26geocode=\x26q\x3c'
, where'\'
和'x'
是单独的字符:
>>> s = '\\x70f=l\\x26hl=en\\x26geocode=\\x26q\\x3c'
>>> print s
\x70f=l\x26hl=en\x26geocode=\x26q\x3c
在这种情况下string_escape
,编码真的很有帮助:
>>> print s.decode('string_escape')
pf=l&hl=en&geocode=&q<
有关编码的更多信息 - http://docs.python.org/library/codecs.html#standard-encodings