「LookupError: unknown encoding: X-MAC-JAPANESEの罠 」の件



今回ちょっと濃い話なので
初めての方は理解できなくて大丈夫です!!

unicode ぶらんちが入ったのでいろいろ戦いが始まりました。
{{ page.created|date:"Y" }}
とか Mac でやってるとX-MAC-JAPANESE なんてしらねーよ馬鹿!
って怒られます。
なので一時的に回避する方法。
/django/utils/tzinfo.py

#DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii' 
DEFAULT_ENCODING = 'utf-8' 

あくまでも一時的ですよ。

unicode - Twisted Mind

Mac OS XPythonやるときにハマりがちなポイントだと思うけど、ピリッとしたベストな対処法がわかんねー
/Library/Frameworks/Python.frame/Versions/2.5/lib/python2.5/site-packages/django/utils/tzinfo.py

#DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
 DEFAULT_ENCODING = 'utf-8' 

と弄るのがいちばん簡単か?(まっとうとは思えんが)

「LookupError: unknown encoding: X-MAC-JAPANESEの罠」 - otsune's SnakeOil - subtech

ってあったのですが
僕も嵌りました。


で、せっかくだからちゃんとした対処法はないのかなと思って
ビクビクしながらDjango-ja (at Lingr)で聞いてみました。


で、
site-packagesの下に
sitecustomize.pyを設置して

import sys
sys.setdefaultencoding("utf-8")

って書くのが正しいのではとか
色々やってたのですが、治らず。
(ちなみに発生したのは日付のフォーマットあたり)


で、

>>> locale.getdefaultlocale()
(None, 'X-MAC-JAPANESE')

ということで
defaultencodingじゃないことが判明。


で、これってTrac使ってる人ととかも発生するのでは?
とか、気がつくと深い話になってました。

興味のある方はどうぞ。
文字コード関係なのでゴニョゴニョ……)
http://www.lingr.com/room/django-ja/archives/2007/09/07#msg-14546036


というわけで、とりあえずは上記お二方の解決方法で
行くしか無さそうです><

追記:
utf-8より

#DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
DEFAULT_ENCODING = 'Shift-JIS' 

のほうがベターっぽいです。
Django-ja の方々の暖かさに感激しました。
ありがとうございます。

更に追記:

OSX特有の問題を回避する。

http://www.everes.net/2007/sep/06/install-django-for-begginers-osx/

asciiのほうが良いみたいです><
(Shift-Jisで近い物で誤魔化すのではなくエラーを出した方が良いのでは?という考え)