我有尝试撷取发布到它的RSS项目和RSS存储在sqlite3的分贝一个python脚本SGI存储一个UTF-16编码RSS流进的sqlite3的正确步骤。我使用flup作为WSGIServer。
为了获得发布的内容: POSTDATA = ENVIRON [ “wsgi.input”]读取(INT(ENVIRON [ “CONTENT_LENGTH”]))什么是使用python
要尝试在db来存储:
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.2 源码提前3.5.7
感谢任何洞察到这一问题。
这里是包含在POSTDATA初始数据的一个样本通过repr函数作为修改,写入文件和观看具有较少:
“\ XEF \ XBB \ XBF
由于为所有的答复!很有帮助。
我提交没有做它通过计算器HTML过滤器会再次尝试,转换比实体更小和更大的(预览显示这个工程)的样品。
\ XEF \ XBB \ XBF <?XML版本= “1.0” 编码= “UTF-16”? > < rss xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance”xmlns:xsd =“http://www.w3.org/2001/XMLSchema”> <频道> <项目d3p1 :size =“0”xsi:type =“tFileItem”xmlns:d3p1 =“http://htinc.com/opensearch-ex/1.0/”>
注意:UCS-2在几点上与UTF-16截然不同。 -----特别是:a)UCS-2不能表示任何可能的Unicode字符,如UTF-16 can --- b)UCS-2中的字符全部为2个字节,而UTF-16字符串中的字符可能更长(代理对)。 – Deestan 2009-01-19 23:25:17