質問

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

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

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

この問題をグーグルで試し、文字列を正しくデコードするさまざまな方法を試しましたが、わかりません。

あなたの答えでは、私の文字列は hello または何かと呼ばれていると仮定できます。

役に立ちましたか?

解決

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

他のヒント

u" \ x85why hello there!" などの構文は役に立ちませんか?

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

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

import sys
reload(sys)
sys.setdefaultencoding("utf-8")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top