私のDjangoアプリケーションのデプロイされたバージョンを使用しているとき、私はlxmlのと奇妙な問題を抱えています。私はlxmlを使って自分のサーバから取り出した別のHTMLページを解析します。これは自分のコンピュータ上の開発サーバー上ではうまく動作しますが、なんらかの理由でサーバー上にUnicodeDecodeError
と表示されます。デコードジャンゴで問題とlxmlの
('utf8', "\x85why hello there!", 0, 1, 'unexpected code byte')
私は(mod_pythonのと)ApacheはLANG='en_US.UTF-8'
で実行されていることを確認してきました。
私はこの問題のためにグーグルで試したし、正しく文字列をデコードするために異なるアプローチを試してみましたが、私はそれを把握することはできませんしました。あなたの答えで
、あなたは私の文字列がhello
か何かと呼ばれていることを仮定してもよいです。
合意。 "\ x85why hello there!"を試してください。decode( "utf-8")。これにより、非Unicodeコード(\ x85)がUnicodeコードに変更されます。 "# - * - coding:utf-8 - * - "(引用符なし)を.pyファイルの先頭に追加する必要があるかもしれません。 – landyman
これはおそらく、あなたが実際にはutf-8ではないバイト文字列を返すことによって引き起こされたと考えています。一般に、UTF-8文字列を作成すると主張している場合は、内部的にはUnicode型を使用し、ビットを入力する直前にutf-8にエンコードする必要があります。あなたがバイト列を一緒に作り直すなら、あなたはどこかでうんざりして、それを後でどこかで発見するでしょう。 FWIW、 "\ x85" == "#" –