convert 8 bit strings to unicode before running the query

This commit is contained in:
Jean-Francois Dockes 2013-06-06 13:24:35 +02:00
parent 8dd3219237
commit 98bea3fbd9
2 changed files with 7 additions and 3 deletions

View file

@ -105,6 +105,7 @@ class Scope (Unity.Scope):
self.last_connect_time = 0
self.timeout_id = None
language, self.localecharset = locale.getdefaultlocale()
def _connect_db(self):
#print "Connecting to db"
@ -230,7 +231,7 @@ class Scope (Unity.Scope):
# Do the recoll thing
try:
query = self.db.query()
nres = query.execute(search_string)
nres = query.execute(search_string.decode(self.localecharset))
except:
return

View file

@ -1,10 +1,12 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""A python version of the command line query tool recollq (a bit simplified)
The input string is always interpreted as a query language string.
This could actually be useful for something after some customization
"""
import sys
import locale
from getopt import getopt
try:
@ -93,6 +95,7 @@ def doquery(db, q):
if len(sys.argv) < 2:
Usage()
language, localecharset = locale.getdefaultlocale()
confdir=""
extra_dbs = []
# Snippet params
@ -113,9 +116,9 @@ for opt,val in options:
if len(args) == 0:
print >> sys.stderr, "No query found in command line"
Usage()
q = ""
q = u''
for word in args:
q += word + " "
q += word.decode(localecharset) + u' '
print "QUERY: [", q, "]"
db = recoll.connect(confdir=confdir,