ホームページ >バックエンド開発 >Python チュートリアル >Web ページのテキストをエンコードするときに、Python コードで UnicodeEncodeError がスローされるのはなぜですか?

Web ページのテキストをエンコードするときに、Python コードで UnicodeEncodeError がスローされるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 04:35:14915ブラウズ

Why Does My Python Code Throw a UnicodeEncodeError When Encoding Web Page Text?

UnicodeEncodeError: 'ascii' コーデックの非 ASCII 文字との格闘

さまざまな Web ページからテキストを取得するときに、謎の「 UnicodeEncodeError」は、「ascii」コーデックが特定の文字をエンコードできないことを示します。この不一致は、コードが一部のページでは問題なく実行されるが、他のページでは失敗するというもので、多くの場合、非 ASCII 文字の存在が原因です。

提供されたコード スニペットでは、Unicode 文字列を変換しようとすると問題が発生します。 (文字「 」を含む可能性があります)を「ascii」エンコードされたバイト文字列に変換します。ただし、「ascii」はこの文字を表すことができないため、「ordinal not in range(128)」エラーが発生します。

エンコーディングの問題を解決する

この問題を解決するにはstr() を使用して Unicode 文字列をエンコードされたテキストに変換する習慣を放棄してください。代わりに、UTF-8 などの目的のエンコーディングを使用して文字列を明示的にエンコードする .encode() の機能を利用してください。

エンコード ソリューションの例:

p.agent_info = u' '.join((agent_contact, agent_telno)).encode('utf-8').strip()

あるいは、Unicode の世界を完全に受け入れて、Unicode 文字列のみを操作し、エンコードとデコードの必要性を回避することもできます。操作。

以上がWeb ページのテキストをエンコードするときに、Python コードで UnicodeEncodeError がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。