2

我的脚本中有一个方法可以提取 Twitter RSS 提要,使用 FeedPharser 对其进行解析,使用 twilio 模块将其包装在 TwiML(Twilio 风格的 XML)中,然后通过 str() 在 CherryPy 方法中返回结果响应。这在开发环境(Kubuntu 10.10)中工作得很好;我的服务器上的结果好坏参半(Linode 上的 Ubuntu Server 10.10)。

在最初的几个月里,一切都很好。然后,上述方法开始失败,如下所示:

UnicodeEncodeError:'ascii' 编解码器无法在位置 259 编码字符 u'\u2019':序数不在范围内(128)

但是,当我在相同的提要上运行完全相同的代码时,使用相同的 python 版本,在相同的操作系统上,在我的开发框中,代码执行得很好。但是,我应该注意,即使它可以正常工作,某些字符也不会正确输出。例如:

?

而不是

'

为了解决这个异常,我只是从头开始重建我的 VPS,它工作了几个月,然后错误又回来了。

服务器会自动安装更新的 Ubuntu 软件包,但我的开发箱也是如此。我想不出任何可能导致这种情况的东西。任何帮助表示赞赏。

4

2 回答 2

1

XML 数据不能包含某些字符。一个简单的解决方法是将数据包装在您的 XML 标记中,这会给您带来 CDATA 错误。例如:

<xmltag><![CDATA[Your content]]></xmltag>

或者您可以使用数字参考值 ex &amp;for &

更多信息可在此处获得:

http://en.wikipedia.org/wiki/XML#Characters_and_escaping http://en.wikipedia.org/wiki/Numeric_character_reference http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references http://en.wikipedia.org /wiki/CDATA

于 2011-06-06T00:37:25.520 回答
0

几次重新启动后(出于不相关的原因),它又可以正常工作了。多么奇怪……

于 2011-06-08T13:01:26.303 回答