Я пытаюсь найти шаблон в результатах sqlalchemy (на самом деле фильтр по 'like' или 'op' ('regexp') (pattern), который, как мне кажется, имплантирован где-то с регулярным выражением) - строка и поиск Строка есть как на иврите, так и предположительно (возможно я ошибаюсь) - юникод
где r = u'לבן'
и c = u'לבן, ורוד, '
когда я re.search(r,c)
я получаю SRE.match
объект
но когда я запрашиваю БД, как:
f = session.query(classname)
c = f[0].color
и с дает мне:
'\xd7\x9c\xd7\x91\xd7\x9f,\xd7\x95\xd7\xa8\xd7\x95\xd7\x93,'
или print (c):
לבן,ורוד,
практически то же самое, но выполнение re.search(r,c)
не дает мне никакого соответствия.
Так как я подозревал проблему с Unicode, я попытался преобразовать в Unicode с unicode(c)
и я получаю кодек «UnicodeDecodeError:« ascii »не может декодировать байт 0xd7 в позиции 0: ординал», что, я думаю, означает, что это уже строка в кодировке Unicode - так в чем здесь подвох?
Я бы предпочел использовать sqlalchemy 'like'
, но у меня та же проблема там = где я точно знаю (как я показал в своем примере, что данные содержат строку)
Должен ли я каким-то образом преобразовать строку поиска, шаблон? это связано с юникодом? что-то еще?
Сортировка таблицы БД (которую я запрашиваю): utf8_unicode_ci