информация, по-видимому, выходит из mysqldb неправильно, python django - PullRequest
0 голосов
/ 09 ноября 2008

В базе данных latin-1 у меня есть '\222\222\223\225', когда я пытаюсь извлечь это поле из моделей django, я получаю обратно 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()

Так что я вступаю в это и вхожу в

/ USR / местные / python2.5 / Библиотека / python2.5 / сайт-пакеты / MySQL_python-1.2.2-py2.5-линукс-i686.egg / MySQLdb / cursors.py (327) fetchone () - > (u '\ u2019 ... 1c \ u2022',)

Я не могу идти дальше, потому что это яйцо, но кажется, что драйвер Python MySQL интерпретирует данные не как latin-1.

Кто-нибудь знает, что происходит?

Ответы [ 2 ]

1 голос
/ 09 ноября 2008

Небольшой просмотр уже заданных вопросов привел бы вас к UTF-8 латиноамериканским проблемам с конверсией , на которые вчера задавали вопросы.

Кстати, я не мог вспомнить точное название, поэтому я просто погуглил на django + '\ 222 \ 222 \ 223 \ 225' и нашел его. Помните, дети, Google - ваш друг (тм).

0 голосов
/ 20 ноября 2008

Django использует UTF-8, если только вы не определите DEFAULT_CHARSET как что-то другое. Имейте в виду, что для определения другой кодировки потребуется, чтобы вы закодировали все ваши шаблоны в этой кодировке, и эта кодировка будет отображаться здесь, например, при кодировании электронной почты, в файлах сайтов, лентах и ​​т. Д. Итак, IMO, лучшее, что вы можете сделать, это перейти на UTF-8, это избавит вас от головной боли с Django (внутренне это все в юникоде, проблемы на границах вашего приложения, такие как шаблоны и ввод).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...