【问题标题】:information seemingly coming out of mysqldb incorrectly, python django信息似乎错误地从mysqldb出来,python django
【发布时间】:2023-03-21 10:35:02
【问题描述】:

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

有人知道发生了什么吗?

【问题讨论】:

    标签: python mysql django character-encoding


    【解决方案1】:

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

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

    【讨论】:

    • 这是我的问题,虽然答案很好,但我没有问正确的问题。
    • 没错。我早在石器时代(1979 年)就开始做文本检索系统,并很快发现词汇冲突和查询形成是找到所需答案的最大障碍。如果您搜索“猫病”,您可能永远找不到有关“猫科疾病”的重要文章。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2012-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多