私は Unicode と Python 2.7 のさまざまなエンコーディング/デコーディングについて多くのことを読みましたが、IDLE が正しい文字列を出力できないように見える理由を理解するのにまだ苦労しています。
私はユニコード文字列を持っています:
>>> s = u"Hey I\u2019m Bob"
>>> print s
Hey I'm Bob
ただし、UTF-8 にエンコードすると、次のようになります。
>>> s.encode('utf-8')
'Hey I\xe2\x80\x99m Bob'
>>> print s.encode('utf-8')
Hey I’m Bob
これを正しく印刷できない理由はわかりませんが、 s.encode('utf-8') をテキスト ファイルに書き込めば、正しく出力されます。これがIDLEと関係があるかどうかわかりませんか?