IPythonでのunicode文字列が微妙 完結編

unicode文字列が欲しかったら、毎回こんなん?

In [54]: unicode('あ', 'mbcs')
Out[54]: u'\u3042'

In [55]: print unicode('あ', 'mbcs')
あ

そんなー。

encodingで"mbcs"を指定すると、ロケールから適切なエンコーディングスキームを取得してくれるとかなんとか。

まー、いいかー。インタラクティブ環境だけでの話だし、よく使うんなら、

In [4]: def u(src):
   ...:     return unicode(src, 'mbcs')
   ...:

って書いとけば、

In [5]: print u('aa')
aa

In [6]: u('aa')
Out[6]: u'aa'

In [7]: u('あ')
Out[7]: u'\u3042'

In [8]: print u('あ')
あ

ってなるんだから。