2008-11-09 5 views
0

latin-1 데이터베이스에 있는데, 내가 u'\u2019\u2019\u201c\u2022'이라는 장고 모델에서이 필드를 가져 오려고 할 때 '\222\222\223\225'이있다.겉으로보기에는 mysqldb 정보가 잘못 나온다. 파이썬 django

from django.db import connection                                                              
(Pdb)                                                                     
cursor = connection.cursor()                                                               
(Pdb)                                                                     
cursor.execute("SELECT Password from campaignusers WHERE UserID=26")                                                    
(Pdb)                                                                                                                           
row = cursor.fetchone() 

그래서 나는 한 단계 및

에 들어가 /usr/local/python2.5/lib/python2.5/site-packages/MySQL_python-1.2.2-py2.5- 리눅스 i686.egg/MySQLdb/cursors.py (327) 대하여 fetchone() -> (U '\ u2019 u2022 고객 1C ... \')

I는이 단계에 추가 할 수없는 그 때문에 달걀이지만 그것은 MySQL 파이썬 드라이버가 latin-1이 아닌 데이터를 해석하고있는 것 같습니다.

누구나 실마리가 있습니까?

답변

1

이미 묻는 질문을 조금이라도 읽게되면 어제 질문했고 대답 한 UTF-8 latin-1 conversion issues으로 연결되었을 것입니다.

나는 정확한 제목을 기억할 수 없기 때문에 장고 + '\ 222 \ 222 \ 223 \ 225'에 가서 봤습니다. 기억하십시오, 아이들, Google은 당신의 친구 (tm)입니다.

+0

내 질문이었고 답변은 좋았지 만 올바른 질문을하지 않았습니다. – jacob

+0

정확합니다. 나는 Stone Age (1979)에서 텍스트 검색 시스템을 다시 시작했으며, 단어 충돌과 쿼리 형성이 원하는 답을 찾는 데있어 가장 큰 장애물이라는 것을 신속하게 발견했습니다. "고양이 질병"을 검색하면 "고양이 병리"에 관한 중요한 기사를 찾을 수 없습니다. –

0

Django는 DEFAULT_CHARSET을 다른 것으로 정의하지 않는 한 UTF-8을 사용합니다. 다른 문자 세트를 정의하려면이 문자 세트의 모든 템플릿을 인코딩해야하며이 문자셋은 이메일 인코딩, 사이트 맵 및 피드 등에서 여기 저기로 팝업됩니다. 그래서, 당신이 할 수있는 최선의 방법은 UTF-8로가는 것입니다. 이것은 장고로 많은 두통을 없애줍니다 (내부적으로는 모두 유니 코드이고, 문제는 템플릿과 입력과 같은 앱의 경계에 있습니다).