gpt4 book ai didi

python - 使用 python 将 utf-16 编码的 rss 流存储到 sqlite3 中的正确过程是什么

转载 作者:行者123 更新时间:2023-12-01 06:20:04 24 4
gpt4 key购买 nike

我有一个 python sgi 脚本,它尝试提取发布到它的 rss 项目并将该 rss 存储在 sqlite3 数据库中。我使用 flup 作为 WSGIServer。
获取发布的内容: postData = environ["wsgi.input"].read(int(environ["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 的前几个字符存储在记录中:ÿþ<我相信最初的字符是 rss 的 BOM。

我已经尝试了我能想到的所有排列,包括首先将 rss 编码为 utf-8,然后尝试存储,但结果是相同的。我无法解码,因为某些字符无法表示为 unicode。

运行 python 2.5.2sqlite 3.5.7

预先感谢您对此问题的任何见解。

<小时/>

以下是 postData 中包含的初始数据示例,由 repr 函数修改,写入文件并使用 less 进行查看:

'\xef\xbb\xbf

谢谢大家的回复!很有帮助。

<小时/>

我提交的示例未通过 stackoverflow html 过滤器将再次尝试,将小于和大于转换为实体(预览表明此方法有效)。

\xef\xbb\xbf < channel >

最佳答案

关于插入编码 - 在任何合适的数据库 API 中,您应该仅插入 unicode 字符串和 unicode 字符串。

对于阅读和解析部分,我推荐 Mark Pilgrim 的 Feed Parser 。它正确处理BOM,并且许可证允许商业使用。 如果您没有对 RSS 数据进行任何实际解析,这可能有点过于严厉。

关于python - 使用 python 将 utf-16 编码的 rss 流存储到 sqlite3 中的正确过程是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/457641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com