「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 XでPythonやるときにハマりがちなポイントだと思うけど、ピリッとしたベストな対処法がわかんねー
/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で近い物で誤魔化すのではなくエラーを出した方が良いのでは?という考え)