私のスクリプトには、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 パッケージを自動的にインストールしますが、私の開発ボックスも同様です。これを引き起こす可能性のあるものは何も考えられません。どんな助けでも大歓迎です。