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

[ 2008년 04월 09일, 19시 10분] [ 글 갈래 : 잘난 척 하기 ]

맥(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)은 안쓰는게 정신 건강에 좋다.

1개의 댓글과 엮인글이 있습니다.

  1. 류광의 번역 이야기:

    웹 항해일지, 2008-04-09…

    웹 항해일지, 2008-04-09 웹 2.0 사이트 3종: bug.gd - Humanity’s Only Hope - 주요 소프트웨어 또는 라이브러리의 오류 메시지와 그에 대한 해결책을 모으는 사이트. 이를테면 이런 글이나 이런 글을 하…


    trackback at 2008/04/10 이 의견은 엮인글(Trackback)이며, 모든 내용을 읽으시려면 이곳을 누르세요.

댓글을 남기시면 좋은 일이 생길 겁니다.



XHTML: 옆의 HTML 태그를 사용할 수 있습니다 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>