EXE化(py2exe)について

会社で作ったスクリプトをEXE化した時に、どうしても2バイトが入るとエラーが出てたので、
なんでかと思ってたんですが、以下が参考になりました。

http://d.hatena.ne.jp/katz3/20080430/1210303100

ソースコードから実行する分には問題ないのに、exe化してから実行すると、

UnicodeEncodeError: 'ascii' codec can't encode characters in position ...

と出た。importで

import sys

sys.setdefaultencoding('cp932')

と書いたらexe化してもうまく動いた。exe化するときは必ずデフォルトエンコーディングの設定をソースコードに書いておいたほうがよさそう。

全部のソースに

#coding: utf-8
# -*- encoding: utf-8 -*- 
import sys, locale, codecs

enc = locale.getpreferredencoding()
sys.stdout = codecs.getwriter(enc)(sys.stdout)
sys.stdin = codecs.getreader(enc)(sys.stdin)

って今かいてあるのを

#coding: utf-8
# -*- encoding: utf-8 -*- 
import sys, locale, codecs

enc = locale.getpreferredencoding()
sys.stdout = codecs.getwriter(enc)(sys.stdout)
sys.stdin = codecs.getreader(enc)(sys.stdin)

sys.setdefaultencoding(enc)

ってするといい感じかな?もうおまじない状態ではありますが。。。