Pythonでは、次のような文字列があります。
'\\x89\\n'
次のような通常の文字列にデコードするにはどうすればよいですか?
'\x89\n'
Python 2バイトの文字列は、_'string_escape'
_コーデックでデコードできます。
_raw_string.decode('string_escape')
_
デモ:
_>>> '\\x89\\n'.decode('string_escape')
'\x89\n'
_
nicodeリテラルの場合、_'unicode_escape'
_を使用します。 Python 3では、文字列はデフォルトでUnicode文字列ですが、バイト文字列のみに.decode()
メソッドがあります。
_raw_byte_string.decode('unicode_escape')
_
入力文字列がすでにユニコード文字列の場合、codecs.decode()
を使用して以下を変換します。
_import codecs
codecs.decode(raw_unicode_string, 'unicode_escape')
_
デモ:
_>>> b'\\x89\\n'.decode('unicode_escape')
'\x89\n'
>>> import codecs
>>> codecs.decode('\\x89\\n', 'unicode_escape')
'\x89\n'
_
これはPython 3:
b'\\x89\\n'.decode('unicode_escape')