Python スクリプトでの sys.setdefaultencoding("utf-8") に対する注意
sys.setdefaultencoding( Python スクリプトで「utf-8」) を使用して Unicode エンコードを処理する場合、この行為は厳密に避けてください。 Python のドキュメントによると、この関数は Python のシステム全体のモジュール スキャン中の実行時にのみ呼び出す必要があります。
次の理由により、スクリプトでの使用は推奨されません:
-
Python 起動以外の無効性: システム全体のモジュール スキャンが完了すると、sys.setdefaultencoding() は no になりますより長く使用できるようになります。リロード ハックによって属性を復元しようとしても、一時的に属性が戻されるだけです。
-
非推奨: Python 3 では、sys.setdefaultencoding() は no-op であり、効果がありません。 。エンコーディングを設定すると、その廃止を示すエラーが発生します。
-
Py3k のハードコーディングされた UTF-8: Python 3 のエンコーディングはコンパイル時に永続的に「utf-8」に設定されます。この設定を変更することは不可能であり、エラーが発生します。
Python 開発者は、sys.setdefaultencoding() に依存する代わりに、次のような Unicode の処理に関する他のベスト プラクティスを採用する必要があります。
- Python 3 で新しい「bytes」タイプと「unicode」タイプを使用する
- 必要に応じて、「encode()」および「decode()」メソッドを使用して、バイトと Unicode の間で変換します。
- 「locale」モジュールを利用します。エンコードやテキスト操作など、ロケールに依存する操作のプラットフォーム固有の処理用。
以上がPython スクリプトで `sys.setdefaultencoding(\'utf-8\')` を避けるべきなのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。