Форум сайта python.su
Пытаюсь выполнить поиск
req = request.POST.get('req','')
conn = sqlite3.connect('db.db')
c = conn.cursor()
c.execute(“SELECT * FROM db WHERE field LIKE ?”,('%' + req + ‘%’,))
result1 = c.fetchall()
для английских слов работает, для русских слов выдаёт, что сделайте text_factory = ‘utf-8’. делаем:
req = request.POST.get('req','')
conn = sqlite3.connect('db.db')
conn.text_factory = ‘utf-8’
c = conn.cursor()
c.execute(“SELECT * FROM db WHERE field LIKE ?”,('%' + req + ‘%’,))
result1 = c.fetchall()
и получаем: TypeError(“'str' object is not callable”,)
если убрать процентики, то просто запросы работают, но это уже не поиск.
Даже не представляю, как это всё работает, и что тут нужно изменить.
Офлайн
там ф-ция должна быть.
скорее всего вот это должно подойти:
con.text_factory = lambda x: unicode(x, "utf-8", "ignore")
Отредактировано (Сен. 5, 2011 09:36:04)
Офлайн
у меня подошло con.text_factory = str но оно по русским буквам регистрозависимо ищет. :( я уж думал, что не осталось в 2011 году чего-то, не умеющего нормально utf-8, у меня даже grep нормально по utf-8 ищет…
Офлайн