Хранение длинной строки HTML в базе данных SQLite вызывает неизвестную ошибку - PullRequest
0 голосов
/ 24 сентября 2011

Я храню некоторый HTML в базе данных SQLite3 на Python.

Когда я иду, чтобы вставить HTML в свою таблицу SQL, я получаю сообщение об ошибке, что я не понимаю, в чем дело, и, что более важно, как решить проблему.

Строка ошибки:

Общее исключение: вы не должны использовать 8-битные строки байтов, если вы не используете text_factory, которая может интерпретировать 8-битные строки байтов (например, text_factory = str). Настоятельно рекомендуется вместо этого просто переключить свое приложение на строки Unicode.

HTML-строка, которую я вставляю в таблицу, довольно длинная (около 700 символов).

Есть идеи, что не так и как я могу это исправить?

1 Ответ

0 голосов
/ 24 сентября 2011

Глядя на ответ на этот вопрос , похоже, что ваша проблема в том, что вы пытаетесь вставить HTML с символами, которые не отображаются в ASCII. Если вы позвоните unicode(my_problematic_html), вы, вероятно, получите UnicodeEncodingError. В этом случае вы захотите decode ваше проблемное строковое представление в Unicode, вызвав:

my_unicoded_html = my_problematic_html.decode("utf-8")

и затем запись my_unicoded_html в базу данных.

Вы захотите прочитать Unicode в Python полностью демистифицирован .

* Обратите внимание, что ваш HTML может быть закодирован в каком-то другом кодеке (формат? ... кодировка?), Чем utf-8. latin-1 также является хорошим предположением, если вы работаете в Windows (или HTML может быть с компьютера с Windows).

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