python - 如何在 python 中将十六进制字符串 "\x89PNG"转换为纯文本

标签 python hex ascii

我有一个字符串 "\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' 这样的字符串问题,其中 '\''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

关于python - 如何在 python 中将十六进制字符串 "\x89PNG"转换为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11682300/

相关文章:

python - paramiko 中的 ftplib retrbinary?

python - pipenv install 每次都安装依赖项/Pycharm 无法识别它们

language-agnostic - HEX RGB 颜色处理方法?

java - 如何将字符串编码为 8 位 ASCII 字符?

c++ - 如何检查字符常量是否符合ASCII?

python - Standard Streams 文件是否存储在磁盘中?

python - 我们可以在 .NET ironpython 中加载 pandas DataFrame 吗?

java - 从主机读取打包的十六进制数据并将其转换为十进制格式

javascript - 如何在 JavaScript 中将十六进制数据字符串转换为 ArrayBuffer

string - 用 bash 替换字符串中的百分比转义字符(%20、%5B、…)