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

推荐订阅源

S
Schneier on Security
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
D
DataBreaches.Net
F
Full Disclosure
腾讯CDC
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
The Register - Security
The Register - Security
WordPress大学
WordPress大学
博客园 - 聂微东
雷峰网
雷峰网
J
Java Code Geeks
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
A
Arctic Wolf
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CERT Recently Published Vulnerability Notes
O
OpenAI News
Project Zero
Project Zero
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
Schneier on Security
Schneier on Security

博客园 - 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以后,这个问题好像不存在了。