Уведомления

Группа в Telegram: @pythonsu

#1 Май 3, 2009 23:56:05

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

sqlLite. Работа с Юникодом

sypper-pit
тут нужно перекодировку делать из utf8 в cp1251
Ну и причём тут UTF-8? Это юникод-строка, которая не имеет понятия кодировки. Обычная строка, это просто набор байт, который может содержать символы в какой-то кодировке (например в UTF-8 или UTF-9). А юникод строка, это просто массив символов юникода. И эти понятия надо чётко раздетять.

igor.kaist, sypper-pit: если то, что ниже (выдержка из моей текущей работы) нельзя назвать конфигом… Ну да, абстрактно, но всё-таки это конфиг!

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)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version