0

在一个 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。

有人知道发生了什么吗?

4

2 回答 2

1

稍微浏览一下已经提出的问题,您就会看到UTF-8 latin-1 转换问题,昨天有人提出并回答了这个问题。

顺便说一句,我不记得确切的标题,所以我只是在 django+'\222\222\223\225' 上搜索并找到了它。记住,孩子们,谷歌是你的朋友 (tm)。

于 2008-11-09T16:54:16.633 回答
0

Django 使用 UTF-8,除非您将 DEFAULT_CHARSET 定义为其他内容。请注意,定义其他字符集将要求您在此字符集中对所有模板进行编码,并且此字符集将从这里弹出到那里,例如电子邮件编码、站点地图和提要等。所以,IMO,你能做的最好的就是使用 UTF-8,这会让你在使用 Django 时省去很多麻烦(内部都是 unicode,问题出在你的应用程序的边界上,比如模板和输入)。

于 2008-11-19T21:34:21.470 回答