게시 된 RSS 항목을 추출하고 rss를 sqlite3 db에 저장하려고하는 python sgi 스크립트가 있습니다. WSGIServer로 flup을 사용하고 있습니다.
가 등록한 컨텐츠 구 :.파이썬을 사용하여 utf-16으로 인코딩 된 rss 스트림을 sqlite3에 저장하는 방법
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,))
: 의 postData = 싸다 [ "wsgi.input를"]
는 DB에 저장하는 시도() "CONTENT_LENGTH"(싸다을 INT) 읽기
이 결과는 rss의 처음 몇 문자 만 레코드에 저장됩니다. ÿll < 저는 초기 문자가 rss의 BOM이라고 생각합니다.
나는 utf-8로 rss를 처음 엔코딩하는 것을 포함하여 생각할 수있는 모든 순열을 시도한 다음 저장하려고 시도했지만 결과는 동일했습니다. 일부 문자를 유니 코드로 표현할 수 없기 때문에 디코딩 할 수 없습니다. 이 문제에 어떤 통찰력을위한 파이썬 2.5.2 sqlite가에게 사전에 3.5.7
감사를 실행
.
'\ XEF \ xbb \
XBF 감사 : 이하의 파일로 기록되고 볼은에 repr 함수에 의해 수정 여기는 postData를 포함 초기 데이터의 샘플 인 모든 답장을 위해! 매우 도움이됩니다.
내가 (미리보기이 작동 표시) 실체에보다 더 큰 변환, 다시 시도됩니다 유래 HTML 필터를 통해하지 않았다 제출 한 샘플입니다.
\ xef \ xbb \ xbf <? xml version = "1.0"encoding = "utf-16"? > < rss xmlns : xsi = "http://www.w3.org/2001/XMLSchema"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는 UTF-16처럼 가능한 모든 유니 코드 문자를 나타낼 수 없습니다. b) UCS-2의 문자는 모두 길이가 2 바이트이고 UTF-16 문자열의 문자는 더 길다 (서로 쌍을 이룬다). – Deestan