免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2301 | 回复: 4
打印 上一主题 下一主题

请教MySQLdb模块的字符集、校正的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-19 10:41 |只看该作者 |倒序浏览
>>> conn = MySQLdb.connection(host ="",user = "root", passwd = "123456",  db = "django_test");
>>>
>>> charset = conn.character_set_name()
>>> charset
'latin1_swedish_ci'
---------------------------------------------------------
数据库的字符集明明是latin1,'latin1_swedish_ci'是相应的collation,这里字符集居然返回的是'latin1_swedish_ci',然后编码就出错
LookupError: unknown encoding: latin1_swedish_ci
晕啦
我是在用django的session的时候,需要创建相应的数据库表,操作如下命令
./manage.py syncdb
报错的,我跟踪了一下,发现在MySQLdb模块的cursors.py文件的第146-149行
        db = self._get_db()
        charset = db.character_set_name()
        if isinstance(query, unicode):
            query = query.encode(charset)
这里返回的charset就是'latin1_swedish_ci',然后用 query = query.encode('latin1_swedish_ci')编码,就报错啦!!

这是不是MySQLdb的bug阿????

哪位高人能给指点一二啊。

论坛徽章:
0
2 [报告]
发表于 2008-11-19 14:09 |只看该作者
我这都是返回'latin1'哦,无论是win还是linux都一样。你还是看下你的配置问题。

论坛徽章:
0
3 [报告]
发表于 2008-11-20 10:08 |只看该作者

回复 #2 xiaoyu9805119 的帖子

请问你的mysql  python django  MySQLdb都是什么版本?
你说的配置问题,能不能在具体些?
我非常菜,呵呵
多谢阿

论坛徽章:
0
4 [报告]
发表于 2008-11-21 09:28 |只看该作者
mysql 5.0
python 2.6
MySQLdb 1.2.2

dj没装。基本上安装都是默认。
>>> charset
'latin1_swedish_ci'

这个我返回latin1

论坛徽章:
0
5 [报告]
发表于 2008-11-21 11:43 |只看该作者

回复 #4 xiaoyu9805119 的帖子

多谢
我的服务器上的版本是:
mysql 4.1.7
python 2.5
MySQLdb 1.2.2

它就是返回
>>> charset
'latin1_swedish_ci'
哎,mmd,简直要疯了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP