On Wed, Nov 25, 2009 at 1:54 AM, Hinnack <henrik.gens...@googlemail.com>wrote:
> Hi Karen, > > thanks for your reply > > it means so far I must do a: > qs = search[query].encode('iso-8859-1') > > before I add the qs to a Q object of a queryset. Only in this case I get > results. > > the full codepart looks like: > > decoder = simplejson.JSONDecoder() > search = decoder.decode(request.POST['search']) > qs = search['caption'].encode('iso-8859-1') > > searchstr = urllib.unquote_plus(qs).strip('=!~') > > basic.filter( Q(evid__caption__icontains=searchstr) ) > > > I do have no DATABASE_OPTIONS set. Maybe that's it? > No, there's nothing you need to set specially to get this to work. It would be interesting to see the repr of search['caption'] before and after you do the encode('iso-8859-1'). I suspect search['caption'] is originally a Unicode object that was (incorrectly) constructed from a utf-8 bytestring assuming iso-8859-1 encoding. That would explain the results you are getting, since encoding such an incorrectly constructed object to iso-8859-1 will restore it to a utf-8 bytestring. Django, when handed a bytestring, assumes it is utf-8 encoded and speaks utf-8 to the database, so all works. If on the other hand you pass such an incorrectly built unicode object as a unicode object, Django will encode it using utf-8, which results in two levels utf-8 encoding having been done, and the result won't match actual utf-8 data in the database. But it's also just possible that the problem is the data values in the database, maybe. Confirmation of where the problem is would come from knowing the repr of search['caption'] before and after the encode to iso-8859-1. Then we'd be sure whether to look more closely at the way in which search['caption'] is getting built or the database itself. Karen -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.