なぜpyスクリプトでsys.setdefaultencoding("utf-8")を使用しない方が良いのでしょうか? 質問する

なぜpyスクリプトでsys.setdefaultencoding(

スクリプトの先頭でこれを使用する py スクリプトをいくつか見たことがあります。どのような場合にこれを使用すればよいのでしょうか?

import sys
reload(sys)
sys.setdefaultencoding("utf-8")

ベストアンサー1

ドキュメントによると、これにより、デフォルトの ASCII から UTF-8 などの他のエンコーディングに切り替えることができ、Python ランタイムは文字列バッファを Unicode にデコードする必要があるときはいつでもこれを使用します。

この関数は、Python が環境をスキャンする Python の起動時にのみ使用できます。システム全体のモジュールで呼び出す必要があります。sitecustomize.pyこのモジュールが評価された後、setdefaultencoding()関数はモジュールから削除されますsys

実際にそれを使用する唯一の方法は、属性を復元するリロード ハックを使用することです。

また、の使用はsys.setdefaultencoding()常に推奨されていない、py3k では何も実行されません。py3k のエンコーディングは "utf-8" に固定されており、これを変更するとエラーが発生します。

読む際のヒントをいくつかご紹介します。

おすすめ記事