Форум сайта python.su
sypper-pitНу и причём тут UTF-8? Это юникод-строка, которая не имеет понятия кодировки. Обычная строка, это просто набор байт, который может содержать символы в какой-то кодировке (например в UTF-8 или UTF-9). А юникод строка, это просто массив символов юникода. И эти понятия надо чётко раздетять.
тут нужно перекодировку делать из utf8 в cp1251
class Connection(sqlite3.Connection):
def __init__(self, *args, **kwargs):
sqlite3.Connection.__init__(self,
*args, detect_types=sqlite3.PARSE_DECLTYPES, **kwargs)
self.row_factory = sqlite3.Row
self.text_factory = \
lambda s: s.decode("UTF-8") if isinstance(s, str) else s
sqlite3.register_converter('bool', bool)
Офлайн