В базе данных 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/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',)
Я не могу углубиться в это, потому что это яйцо, но кажется, что драйвер Python MySQL интерпретирует данные не как latin-1.
Кто-нибудь знает, что происходит?






Небольшой просмотр уже заданных вопросов привел бы вас к Проблемы преобразования UTF-8 latin-1, на который вчера был задан вопрос и дан ответ.
Кстати, я не мог вспомнить точное название, поэтому я просто погуглил на django + '\ 222 \ 222 \ 223 \ 225' и нашел его. Помните, дети, Google - ваш друг (тм).
Точно. Я начал создавать системы поиска текста еще в каменном веке (1979) и быстро обнаружил, что словарный конфликт и формирование запросов были самыми большими препятствиями на пути к поиску нужного ответа. Если вы выполните поиск по «кошачьим болезням», вы, возможно, никогда не найдете важную статью о «кошачьих патологиях».
Django использует UTF-8, если вы не определите DEFAULT_CHARSET как что-то другое. Имейте в виду, что определение другой кодировки потребует от вас кодирования всех ваших шаблонов в этой кодировке, и эта кодировка будет появляться отсюда туда, как кодировка электронной почты, в картах сайта и фидах и так далее. Итак, IMO, лучшее, что вы можете сделать, - это перейти на UTF-8, это избавит вас от многих головных болей с Django (внутренне все это Unicode, проблемы находятся на границах вашего приложения, например, шаблоны и ввод).
это был мой вопрос, и хотя ответы были хорошими, я задавал неправильный вопрос.