【发布时间】:2014-08-06 04:53:36
【问题描述】:
在 Python 中,我有一个这样的字符串:
'\\x89\\n'
如何将其解码为普通字符串,例如:
'\x89\n'
【问题讨论】:
标签: python string python-3.x rawstring
在 Python 中,我有一个这样的字符串:
'\\x89\\n'
如何将其解码为普通字符串,例如:
'\x89\n'
【问题讨论】:
标签: python string python-3.x rawstring
如果你的输入值为str字符串,使用codecs.decode()进行转换:
import codecs
codecs.decode(raw_unicode_string, 'unicode_escape')
如果您的输入值是bytes 对象,则可以使用bytes.decode() method:
raw_byte_string.decode('unicode_escape')
演示:
>>> import codecs
>>> codecs.decode('\\x89\\n', 'unicode_escape')
'\x89\n'
>>> b'\\x89\\n'.decode('unicode_escape')
'\x89\n'
Python 2 字节字符串可以使用'string_escape' 编解码器进行解码:
>>> import sys; sys.version_info[:2]
(2, 7)
>>> '\\x89\\n'.decode('string_escape')
'\x89\n'
对于 Unicode 文字(带有 u 前缀,例如 u'\\x89\\n'),请使用 'unicode_escape'。
【讨论】:
str 没有 decode 方法,string_escape 也不再是有效的编码)。
这适用于 Python 3:
b'\\x89\\n'.decode('unicode_escape')
【讨论】: