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