在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',)
我不能再进一步了,因为它是一个鸡蛋,但似乎MySQL python驱动程序将数据解释为不是latin-1 .
任何人都有任何线索发生了什么?
2 回答
稍微浏览一下已经问过的问题就会让你们昨天被问到并回答了问题 .
顺便说一句,我记不起确切的 Headers ,所以我只是在django'\ 222 \ 222 \ 223 \ 225'上搜索并找到它 . 记住,孩子们,谷歌是你的朋友(tm) .
Django使用UTF-8,除非您将DEFAULT_CHARSET定义为其他内容 . 请注意,定义其他字符集将要求您对此字符集中的所有模板进行编码,此字符集将从此处弹出,如电子邮件编码,站点 Map 和Feed等 . 所以,IMO,你能做的最好的就是去UTF-8,这会让你在Django中省去很多麻烦(内部它是所有的unicode,问题出在你的应用程序的边界上,比如模板和输入) .