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'

'string_escape'Python の 2 バイト文字列は、次のコーデックでデコードできます。

>>> 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 に答える