Как преобразовать stringbyte (необработанную строку html) в sqlite3 TEXT с поддержкой юникода в Python - PullRequest
0 голосов
/ 03 апреля 2012

Я запрашиваю веб-страницу и хочу кэшировать данные страницы в виде необработанной HTML-строки. (Сначала я избежал строки данных) Я использую sqlite3 для сохранения своих данных. Когда я попытался передать byte_string в словарь или кортеж, используя заполнители в запросе, он вызвал «Ошибка программирования», говорящую о том, чтобы преобразовать приложение в строки Unicode. Я сохраняю его как тип данных SQLITE3 TEXT. Я попытался data.encode ("utf-8") и encode ("utf-8"), оба вызывают ту же ошибку
UnicodeDecodeError: кодек «utf8» не может декодировать байт 0xf6 в позиции 11777: недопустимый начальный байт
Я знаю, что он содержит странный символ, этот символ 'ö' . Как я могу решить эту проблему.
Нужно ли использовать BLOB тип данных sqlite3

1 Ответ

0 голосов
/ 03 апреля 2012

Вы должны .decode с правильной кодировкой. В данном случае латиница 1 или CP1252. »Ö« явно не 0xf6 в UTF-8, так почему он должен работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...