スクリプトの先頭でこれを使用する 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" に固定されており、これを変更するとエラーが発生します。
読む際のヒントをいくつかご紹介します。
- http://blog.ianbicking.org/illusive-setdefaultencoding.html
- http://nedbatchelder.com/blog/200401/printing_unicode_from_python.html
- http://www.diveintopython3.net/strings.html#one-ring-to-rule-them-all
- http://boodebr.org/main/python/all-about-python-and-unicode
- http://blog.notdot.net/2010/07/Python で Unicode を正しく使用する