3

Django アプリケーションのデプロイされたバージョンを使用しているときに、lxml に奇妙な問題があります。lxml を使用して、サーバーから取得した別の HTML ページを解析します。これは、自分のコンピューターの開発サーバーでは完全に機能しますが、何らかの理由でUnicodeDecodeErrorサーバー上で表示されます。

('utf8', "\x85why hello there!", 0, 1, 'unexpected code byte')

Apache (mod_python を使用) が で実行されることを確認しましたLANG='en_US.UTF-8'

この問題についてグーグルを試し、文字列を正しくデコードするためのさまざまなアプローチを試みましたが、わかりません。

あなたの答えでは、私の文字列が呼び出されているhelloか何かだと思うかもしれません。

4

3 に答える 3

3

「\x85こんにちは!」utf-8 でエンコードされた文字列ではありません。lxml に渡す前に、Web ページのデコードを試みる必要があります。ページをフェッチするときに http ヘッダーを見て、使用しているエンコーディングを確認してください。

于 2009-05-02T22:32:06.140 に答える
0

u"\x85why hello there!"ヘルプなどの構文はありませんか?

Pythonの公式ドキュメントから次のリソースが役立つ場合があります。

于 2009-05-14T06:31:39.053 に答える
-2

site.py の変更は理想的な解決策ではないため、プログラムの開始時にこれを試してください。

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
于 2009-04-30T18:41:18.803 に答える