26

在 Python 中,我有一个这样的字符串:

'\\x89\\n'

如何将其解码为普通字符串,例如:

'\x89\n'
4

2 回答 2

36

如果您的输入值是str字符串,请用于codecs.decode()转换:

import codecs

codecs.decode(raw_unicode_string, 'unicode_escape')

如果您的输入值是一个bytes对象,您可以使用以下bytes.decode()方法

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'.

于 2014-06-16T11:24:41.367 回答
9

这适用于 Python 3:

b'\\x89\\n'.decode('unicode_escape')
于 2014-06-16T11:34:49.207 回答