- 论坛徽章:
- 0
|
我现在使用Django(magic-removal)开发程序.
数据库是mysql4.1,全部采用utf-8编码(包括client,mysqld,connection)。
过程如下:
1 浏览器中输入地址 http://localhost/keyword/我
2 浏览器自行urlencode变成http://localhost/keyword/%CE%D2
3 Django的myapp/urls.py中 (r'^keyword/(?P<keyword>\S+)/$', 'myapp.keyword.views.get') 用来把访问地址为http://localhost/keyword/%CE%D2中的"%CE%D2"传入myapp.keyword.views.get函数中.
4 myapp.keword.views.get(request,keyword)函数用来查询数据库中的数据,现在对于英文和数字的keyword都能正确的返回结果,但是面对urlencode后的中文,无法得到查询结果
myapp.keword.views.get函数原型如下:
def get(request,keyword):
if keyword:
from urllib import unquote_plus
print unquote_plus(keyword)#用来打印keyword,显示正常
t = Keyword.objects.get(keyword__exact=keyword)#这里的keyword__exact="%CE%D2",不能查询出结果,若使用keyword__exact=unquote_plus(keyword),也得不到查询结果
return object_list(request, t.adword.all(), paginate_by=1)
现在的问题是到底要如何处理urlencode后的汉字才能查询出结果?
[ 本帖最后由 zagorot 于 2006-5-23 16:43 编辑 ] |
|