我正在通過Django RSS閱讀器項目here工作。編碼給出「'ascii'編解碼器不能編碼字符......序號不在範圍內(128)」
該RSS源將讀取像「OKLAHOMA CITY(AP) - 詹姆斯哈登讓」。 RSS提要的編碼讀取編碼=「UTF-8」,所以我相信我在下面的代碼片段中將utf-8傳遞給降價。他的破折號就是它窒息的地方。
我得到Django錯誤的''ascii'編解碼器無法編碼字符u'\ u2014'在位置109:序號不在範圍(128)「這是一個UnicodeEncodeError。在通過的變量中,我看到「OKLAHOMA CITY(AP)\'James Harden」。不工作的代碼行是:
content = content.encode(parsed_feed.encoding, "xmlcharrefreplace")
我使用markdown 2.0,django 1.1和python 2.4。
什麼是編碼和解碼的魔法序列,我需要做這個工作?
(響應於普羅米修斯請求。我同意的格式幫助)
因此,在我的意見添加parsed_feed編碼行的上方smart_unicode線...
content = smart_unicode(content, encoding='utf-8', strings_only=False, errors='strict')
content = content = content.encode(parsed_feed.encoding, "xmlcharrefreplace")
這推動問題我的models.py對我來說,我有我
def save(self, force_insert=False, force_update=False):
if self.excerpt:
self.excerpt_html = markdown(self.excerpt)
# super save after this
如果我改變保存方法有。 ..
def save(self, force_insert=False, force_update=False):
if self.excerpt:
encoded_excerpt_html = (self.excerpt).encode('utf-8')
self.excerpt_html = markdown(encoded_excerpt_html)
我得到錯誤 「 'ASCII' 編解碼器不能在141位解碼字節0xe2:在範圍序數不(128)」因爲現在它讀取 「\ XE2 \ X80 \ X94」其中破折號是
你可以請張貼回溯原樣? – tzot 2010-03-26 12:50:20
基本上,'parsed_feed.encoding'的價值是什麼?每個機會都是'ascii'嗎? (這將解釋你的錯誤)。 – tzot 2010-03-26 12:52:30