我有嘗試擷取發佈到它的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