惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
F
Fortinet All Blogs
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
Jina AI
Jina AI
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
美团技术团队
博客园 - 司徒正美
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research

博客园 - Jason Cui

求助:SQL Server 2005数据库修复后无法收缩 Django:更简单的实现记住密码功能 用Bugols管理自己的项目 请教:为何Asp.net网站会自己弹出用户名密码输入框? 中文在线Bug管理系统 为什么要创建“理财易”? 继续招聘,请个好用的人可真难啊。 招聘两个Asp.net程序员 记账理财网站列表,用户自己挑一个用吧 坚持,究竟有多难? 请教,关于跨站提交的问题,和网站恶意抓取的防止 请教一个有关反射和缓存的高难度问题 诚聘:Asp.net高级技术人员两名 修改了一下Django的源码 幸亏没有选择Ruby On Rails 关于委托的一次实践 Django运行环境配置 Django学习笔记 Python下的Lucene,PyLucene
又改了一次Django的源代码
Jason Cui · 2007-01-12 · via 博客园 - Jason Cui

昨天郁闷了一个晚上,今天早上终于灵光闪现,把问题解决了。

在一个页面上需要给用户提供搜索功能,本来用dbi里面的contains方式就挺好用的,而且中文支持也没有问题。后来因为这个页面是分页的,因此用户提出想要一个汇总数据,于是加上一条自定义的SQL汇总语句,结果,这个语句里面的like '%%'始终就是过不去。要么提示参数不足,要么提示解码错误,说什么ascii编码无法处理特殊字符。

改来改去,试了N多次,都没有解决问题。我觉得自己构造的SQL应该没有问题啊,后来发现,问题很可能出现在那个cursor.execute里面。于是根据错误提示,来到django的代码里,/site-packages/Django-0.95-py2.5.egg/django/db/backends/util.py,给页面的顶部加上#coding=utf-8,OK,错误提示变了,跳到了MySqldb里去。于是再改/site-packages/MySQLdb/cursors.py,给它也加上#coding=utf-8,结果还是不对,仍然提示ascii编码转换错误。

根据错误提示,在这个文件的147行,有一句对查询进行编码的动作,它的编码标准是

# charset = db.character_set_name()
# query = query.encode(charset)

按理说db拿到的编码应该是utf8的,不知道为什么总是会得到ascii编码,导致编码错误,于是将这两行注释掉,查询终于可以通过了。还不知道会不会有什么负作用。

4月24日修正:安装了Django 0.96和Mysqldb1.2.2以后,这个问题好像不存在了。