【 Encoding Error 】
完成 Django 的安裝以及DataBase 的建置等設定,建立一個簡單的測試頁面並啟動 server 後,仍有可能行時出現以下錯誤:
TemplateSyntaxError:
Caught an exception while rendering:
unknown encoding: X-MAC-TRAD-CHINESE
以及
LookupError:
unknown encoding:
X-MAC-TRAD-CHINESE
這項錯誤主要是 Django 在 某些地方的 Default Encoding 是採用系統偏好設定,因此需要將其修改為我們需要的編碼。
在 /lib/python2.5/site-packages/django/utils 中找到 tzinfo.py 並開啟,在第 9 行可以找到以下:
DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
其中的 locale.getdefaultlocale() 即是導致 encoding error 的主因,因此我們可以做出以下修改:
#DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
DEFAULT_ENCODING = 'utf-8'
即把第 9 行註解掉,並在下方加上 DEFAULT_ENCODING = 'utf-8' ,即將其 encoding 修改為我們需要的編碼。如此應可避免掉 unknown encoding 的問題。