我正在通过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