13

次のようなエスケープされたデータを含む文字列があります

escaped_data = '\\x50\\x51'
print escaped_data # gives '\x50\x51'

どのPython関数がそれをエスケープ解除するので、私は得るでしょう

raw_data = unescape( escaped_data)
print raw_data # would print "PQ"
4

4 に答える 4

20

でデコードできますstring-escape

>>> escaped_data = '\\x50\\x51'
>>> escaped_data.decode('string-escape')
'PQ'

Python 3.0にはありませんstring-escapeが、を使用できますunicode_escape

bytesオブジェクトから:

>>> escaped_data = b'\\x50\\x51'
>>> escaped_data.decode("unicode_escape")
'PQ'

Unicodestrオブジェクトから:

>>> import codecs
>>> escaped_data = '\\x50\\x51'
>>> codecs.decode(escaped_data, "unicode_escape")
'PQ'
于 2012-06-08T07:49:07.353 に答える
7

'unicode_escape'コーデックを使用できます。

>>> '\\x50\\x51'.decode('unicode_escape')
u'PQ'

または、「string-escape」を使用すると、従来のPython 2文字列(Python 3ではバイト)が得られます。

>>> '\\x50\\x51'.decode('string_escape')
'PQ'
于 2012-06-08T07:48:29.173 に答える
3

escaped_data.decode('unicode-escape')助けますか?

于 2012-06-08T07:48:34.593 に答える
-4

試す:

eval('"' + raw_data + '"')

動作するはずです。

于 2012-06-08T07:48:15.500 に答える