У меня есть сценарий Python SGI, который пытается извлечь отправленные в него элементы rss и сохранить их в базе данных sqlite3. Я использую flup в качестве WSGIServer.
Чтобы получить размещенный контент:
postData = environment ["wsgi.input"]. read (int (environment ["CONTENT_LENGTH"]))
Чтобы попытаться сохранить в БД:
from pysqlite2 import dbapi2 as sqlite
ldb = sqlite.connect("/var/vhost/mysite.com/db/rssharvested.db")
lcursor = ldb.cursor()
lcursor.execute("INSERT into rss(data) VALUES(?)", (postData,))
В результате в записи сохраняются только первые несколько символов rss:
YTH <
Я считаю, что начальные символы являются спецификацией RSS.
Я пробовал каждую перестановку, которую я мог придумать, включив сначала кодировку rss как utf-8, а затем пытаясь сохранить, но результаты были такими же. Я не смог расшифровать, потому что некоторые символы не могли быть представлены как Unicode.
Запуск Python 2.5.2
sqlite 3.5.7
Заранее благодарим за понимание этой проблемы.
Вот пример исходных данных, содержащихся в postData, измененных функцией repr, записанных в файл и просматриваемых с использованием less:
'\ ХеР \ Xbb \ XBF
Спасибо за все ответы! Очень полезно.
Образец, который я отправил, не прошел через html-фильтры stackoverflow, попытается снова, преобразовав все меньше и больше, чем в сущности (предварительный просмотр показывает, что это работает).
\ xef \ xbb \ xbf <? Xml version = "1.0" encoding = "utf-16"?>