Pythonでパイプに出力したらUnicodeEncodeError

Python(v2.7)で画面に出している時は問題なかったのに、パイプに出力したら"UnicodeEncodeError"が発生したのにちょっと悩んだ。結論的には、「Pythonクックブック」1.22の「標準出力にUnicodekキャラクタを出力」にある

sys.stdout = codecs.lookup('utf_8')[-1](sys.stdout)

と最初にやって問題解決。ここは罠だな。画面に出す時とパイプで違うとはちょっと想像してなかった(考えてみれば当然なんだけど)。Pythonunicodeは色々とヤヤこしい。