Python 3では、バイト文字列を通常の文字列に補間して、Python 2と同じ動作を得るにはどうすればよいですか(つまり、b
プレフィックスや二重円記号なしでエスケープコードだけを取得します)?
例えば:
Python 2.7:
>>> x = u'\u041c\u0438\u0440'.encode('utf-8')
>>> str(x)
'\xd0\x9c\xd0\xb8\xd1\x80'
>>> 'x = %s' % x
'x = \xd0\x9c\xd0\xb8\xd1\x80'
Python 3.3:
>>> x = u'\u041c\u0438\u0440'.encode('utf-8')
>>> str(x)
"b'\\xd0\\x9c\\xd0\\xb8\\xd1\\x80'"
>>> 'x = %s' % x
"x = b'\\xd0\\x9c\\xd0\\xb8\\xd1\\x80'"
Python 3ではb
、出力にプレフィックスと二重アンダースコアが含まれていることに注意してください。私が取得したい結果は、Python2で取得した結果です。