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 バージョン、同じ OS、開発ボックスでまったく同じコードを実行すると、コードは正常に実行されます。ただし、正常に動作する場合でも、一部の文字が正しく出力されないことに注意してください。例えば:

’

それよりも

'

この異常を解決するために、VPS をゼロから再構築しただけで、さらに数か月は機能しましたが、エラーが再発しました。

サーバーは更新された Ubuntu パッケージを自動的にインストールしますが、私の開発ボックスも同様です。これを引き起こす可能性のあるものは何も考えられません。どんな助けでも大歓迎です。

4

2 に答える 2

1

XML データに特定の文字を含めることはできません。簡単な回避策は、CDATA でエラーを発生させている XML タグ内にデータをラップすることです。例えば:

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

&amp;または、数値参照値 exを & に使用できます

詳細については、次を参照してください。

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 に答える