忍者ブログ
想いとグチの吐き出し場

pythonの文字コード設定

この内容は、公開しちゃっていいものかどうか
という気はしてるんだが。。。

Trac1.0ja環境を構築していたら、いくつかのプラグインが動作しない。
ログを見てみるとUnicodeError。

pythonではよくあるエラーで、webの各所では
 /usr/lib/python2.7/sitecustomize.py
 (実体は/etc/python2.7/sitecustomize.py)
に以下を追加すればいいと書かれている。
ちなみにsitecustomize.pyの置き場についてはここが詳しい。
import sys
sys.setdefaultencoding('utf-8')



実際、前のTrac環境(ver0.12)ではそのように対応している。
けど、今回の環境でやってみてもエラーが解消しない。

さて、どうしたもんかな。
と悩んで強硬策。

python本体のソースを漁って、改変。

改変内容を載せる前に。
環境はこれまでと同じ
注意事項もこれまでと同じ。
 自分はTracの製作者等ではなく、単なる1ユーザーでしかありません。
 ソースの改変によるいかなる損失・被害等にも対応しませんし
 動作保証すらしていません。
 もしこの記事を読んでソースの改変を行う時は
 自己責任でお願いします。


もはやお約束のような文言になってますが、
今回の改変はホントに危険性ありだと想います。
ご注意を。




対象ファイル:/usr/lib/python2.7/site.py
改変内容:

505c505
< #if encoding != "ascii":
---
> if encoding != "ascii":
507,508c507,508
< #sys.setdefaultencoding(encoding) # Needs Python Unicode build !
< sys.setdefaultencoding('utf-8')
---
> sys.setdefaultencoding(encoding) # Needs Python Unicode build !
>
PR