informações aparentemente saindo de mysqldb incorretamente, python django

votos
0

Em um banco de dados latino-1 eu tenho ' \222\222\223\225', quando eu tento puxar este campo a partir dos modelos Django eu voltar u'\u2019\u2019\u201c\u2022'.

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

Então, eu passo para isso e entrar em

/usr/local/python2.5/lib/python2.5/site-packages/MySQL_python-1.2.2-py2.5-linux-i686.egg/MySQLdb/cursors.py(327)fetchone()->(u '\ u2019 ... 1c \ u2022',)

Eu não pode pisar mais para isso porque seu um ovo, mas parece que o motorista python MySQL é interpretar os dados não como Latin-1.

Alguém tem alguma idéia do que está acontecendo?

Publicado 09/11/2008 em 04:06
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Um pouco de navegação de perguntas já feitas teria levado você a UTF-8 Latin-1 problemas de conversão , que foi feitas e respondidas ontem.

BTW, eu não conseguia lembrar o título exacto, então eu pesquisei sobre django + '\ 222 \ 222 \ 223 \ 225' e encontrou. Lembre-se, as crianças, o Google é seu amigo (tm).

Respondeu 09/11/2008 em 17:54
fonte usuário

votos
0

Django usa UTF-8, a menos que você definir DEFAULT_CHARSET ser algo diferente. Esteja ciente de que a definição de outro charset vai exigir que você para codificar todos os seus modelos nesta charset e este conjunto de caracteres irá aparecer daqui para lá, como codificação de e-mail, em sitemaps e feeds e assim por diante. Então, IMO, o melhor que você pode fazer é ir UTF-8, isso vai lhe poupar muito dores de cabeça com Django (internamente é tudo unicode, os problemas estão nas fronteiras de seu aplicativo, como modelos e entrada).

Respondeu 19/11/2008 em 22:34
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more