免费注册 查看新帖 |

Chinaunix

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

django 中使用中文查询有问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-27 11:07 |只看该作者 |倒序浏览
最近碰到一个问题,一直没有解决,希望这里的朋友能帮忙想想办法,谢过了!

登录 mysql 客户端执行以下语句查询有数据:
sql=select * from portal_Tresource where keywords like "%最新报道%" order by material_time desc


在 views.py 中通过 django 的 model 查询却没有数据,代码如下:
result=Tresource.objects.all().filter(keywords__contains=u'最新报道').order_by('-material_time')


如果将 filter 中的条件改为非中文的字段,查询结果正确,而且页面显示也是对的,能正确显示查询出来的中文。

以下是我机器上面开发环境的编码:
mysql 数据库:        characterset:    utf8
settings.py:          LANGUAGE_CODE = 'zh-cn'
                             DEFAULT_CHARSET = 'gb18030'
其它py文件和页面均为 utf-8

[ 本帖最后由 honkily 于 2008-3-4 16:05 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-02-29 15:00 |只看该作者

回复 #1 honkily 的帖子

分别修改成

  1. result=Tresource.objects.all().filter(keywords__contains='最新报道').order_by('-material_time')
复制代码

  1. result=Tresource.objects.all().filter(keywords__contains=u'最新报道'.encode("gb18030")).order_by('-material_time')
复制代码

后测试的效果如何?

论坛徽章:
0
3 [报告]
发表于 2008-03-03 22:27 |只看该作者
不好意思,我这几天在公司无法登录论坛

明天试试看

论坛徽章:
0
4 [报告]
发表于 2008-03-04 16:14 |只看该作者
achaoge,
我将代码修改为你说的样子,直接报错了:
DjangoUnicodeDecodeError at /model6/
'utf8' codec can't decode bytes in position 0-1: invalid data. You passed in '\xd7\xee\xd0\xc2\xb1\xa8\xb5\xc0' (<type 'str'>)
Request Method: GET
Request URL: http://localhost:8000/model6/
Exception Type: DjangoUnicodeDecodeError
Exception Value: 'utf8' codec can't decode bytes in position 0-1: invalid data. You passed in '\xd7\xee\xd0\xc2\xb1\xa8\xb5\xc0' (<type 'str'>)
Exception Location: c:\python24\Lib\site-packages\django\utils\encoding.py in force_unicode, line 60
Python Executable: c:\python24\python.exe
Python Version: 2.4.4
Python Path: ['F:\\mytest\\mytest', 'c:\\python24\\lib\\site-packages\\setuptools-0.6c3-py2.4.egg', 'c:\\python24\\lib\\site-packages\\pygments-0.8.1-py2.4.egg', 'C:\\WINDOWS\\system32\\python24.zip', 'F:\\mytest\\mytest', 'c:\\python24\\DLLs', 'c:\\python24\\lib', 'c:\\python24\\lib\\plat-win', 'c:\\python24\\lib\\lib-tk', 'c:\\python24', 'c:\\python24\\lib\\site-packages', 'c:\\python24\\lib\\site-packages\\PIL', 'c:\\python24\\lib\\site-packages\\kodos']

Unicode error hint
The string that could not be encoded/decoded was: ?1?7?1?7?1?7?1?7?1?7?1?7?1?7

...
zhangsf 该用户已被删除
5 [报告]
发表于 2008-04-19 21:08 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP