たとえば、次のような文字列があるとします。
>>> stri = "日本"
>>> res = stri
>>> res
'\xe6\x97\xa5\xe6\x9c\xac'
res
ここで、 の結果を のフォームに変換したいと思い"日本"
ます。
(UTF-8 コンソールで Python 2.x を使用していると仮定します):
何も変換されていないため、元に戻す必要はありません。表示されているのは、文字列の内部表現です。してみてくださいprint
。
>>> stri = "日本"
>>> stri
'\xe6\x97\xa5\xe6\x9c\xac'
>>> print(stri)
日本
明確にするために:
コンソールに Python 変数の名前を入力すると、コンソールはrepr
その変数の を出力します。人間が読める形式で変数を出力したい場合は、print
代わりに を使用してください。変数の格納方法に違いはないため、変換するものはありません。
これは予想される動作です。コンソールは変数を Unicode で出力しません。実際に印刷すると、正しい文字がまだそこにあることがわかります。コンソールは、出力する前にすべての変数に対して repr を自動的に使用します。次の例のように print(repr...)) を実行することで、自分で確認できます。
>>> stri = "日本"
>>> stri
'\xe6\x97\xa5\xe6\x9c\xac'
>>> print stri
日本
>>> print repr(stri)
'\xe6\x97\xa5\xe6\x9c\xac'
>>>
ティムが言ったように、文字は変換されていません。
この記事は、何が起こっているのかを理解するのに役立ちます