Django 0.97에서 unknown encoding: X-MAC-KOREAN 문제

맥(Mac OS X)에서 Django 0.97 pre1판을 기반으로 개발을 할 때 디버깅 화면이 나오지 않고

unknown encoding: X-MAC-KOREAN

위와 같은 문자열이 들어간 오류 화면이 뜹니다. 저는 맥 언어 환경을 우리말로 했기 때문에 X-MAC-KOREAN 이라고 뜨는 것이죠.

이것은 Django에 있는 tzinfo.py (timezone 정보 관리하는 역할)가 기본 locale 을 가져와서 그럴싸한 문자열을 만들려 하기 때문에 맥 환경에서 발생하는 문제입니다. 이게 0.97 언제쯤 고쳐질지는 모르겠으니 일단 아쉬운대로 고쳐서 써봅시다. (음냐. 이러면 svn update 할 때 conflict 뜨는데 그 해결은 알아서 하세요)

대상 소스 파일 : django/utils/tzinfo.py

위 파일을 열면

try:
    DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
except:
    # Any problems at all determining the locale and we fallback. See #5846.
    DEFAULT_ENCODING = 'ascii'

이런 부분이 나옵니다. 소스 파일 안에서 거의 맨 위에 있지요. 여기서 문제가 되는 부분이 바로 try 안에 있는 녀석입니다. 맥에서는 저걸 실행하면 X-MAC-뭐시기라고 가져옵니다. 그런 게 없으니 오류가 나는 것이고요. 그 아래에 DEFAULT_ENCODING = 'utf-8'을 넣어주면 오류 안납니다.

try:
    DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii'
    DEFAULT_ENCODING = 'utf-8'
except:
    # Any problems at all determining the locale and we fallback. See #5846.
    DEFAULT_ENCODING = 'ascii'

이러면 django의 디버깅 화면이 잘 나옵니다. 찝찝하면 DEFAULT_ENCODING = locale.getdefaultlocale()[1] or 'ascii' 를 주석으로 하세요.

여기서 교훈 한 마디. 역시 시험판, 특히 미리맛보기판(pre version)은 안쓰는게 정신 건강에 좋다.


저는 내일 투표 합니다.

는 내일 유권자로서 권리를 행사하기 위해 2008 총선 투표를 합니다.

저는 정치인이 될 생각이 없으며 정치권에서 활동하지 않기 때문에 현 사회에 제 목소리를 내기 매우 어렵지만, 4년에 한 번, 혹은 5년에 한 번씩 제 목소리를 낼 수 있는 이런 귀중한 기회를 헛되이 날리지 않으려 투표를 합니다. 이런 때 아니면 정치인들이 언제 우리네 말을 들어나 주던가요. 이런 좋은 기회를 놓칠 순 없지요.

그래서.

는 내일 유권자로서 권리를 행사하기 위해 2008 총선 투표를 합니다.