「charmap」コーデックによる Unicode エンコード エラー
Python 3.3 の POST メソッド経由でアクセスされた Web ページからの応答を印刷しようとすると、 Windows コンソールで UnicodeEncodeError が発生する可能性があります。これは、コンソールのデフォルト コード ページ CP-850 が、em-dash (U 2014) などの特定の Unicode 文字をサポートしていないために発生します。
堅牢なエンコーディングのためのソリューション
このエラーを防止し、出力インターフェイスのエンコーディングに関係なく堅牢なエンコーディングを保証するには、次の点を考慮してください。解決策:
グローバル エンコーディング リセット: プログラムの開始時に出力エンコーディングをグローバルにリセットします。これにより、デフォルトのコンソール設定に関係なく、後続の出力が正しくエンコードされるようになります。 Python 2 および Python 3 については、以下のコード スニペットを参照してください。
Python 2:
if sys.stdout.encoding != 'cp850': sys.stdout = codecs.getwriter('cp850')(sys.stdout, 'strict') if sys.stderr.encoding != 'cp850': sys.stderr = codecs.getwriter('cp850')(sys.stderr, 'strict')
Python 3:
if sys.stdout.encoding != 'cp850': sys.stdout = codecs.getwriter('cp850')(sys.stdout.buffer, 'strict') if sys.stderr.encoding != 'cp850': sys.stderr = codecs.getwriter('cp850')(sys.stderr.buffer, 'strict')
これらを採用することでこれらの戦略を使用すると、Unicode エンコード エラーを効果的に防止し、コードの堅牢性を維持し、さまざまな出力エンコード シナリオに適応できるようにすることができます。
以上がPython 3.3 で Web ページの応答を印刷するときに発生する UnicodeEncodeError を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。