一尘不染

为什么我们不应该在py脚本中使用sys.setdefaultencoding(“ utf-8”)?

python

我在脚本顶部看到了几个使用此脚本的py脚本。在什么情况下应该使用它?

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

阅读 395

收藏
2020-02-13

共1个答案

一尘不染

根据文档:这允许你从默认的ASCII切换到其他编码,例如UTF-8,Python运行时在必须将字符串缓冲区解码为unicode时将使用该编码。

此功能仅在Python扫描环境时在Python启动时可用。必须在系统范围的模块中调用,sitecustomize.py评估完setdefaultencoding()该sys模块后,将从该模块中删除该功能。

实际使用它的唯一方法是将属性重新带回的重载hack

此外,使用sys.setdefaultencoding()一直气馁,它已成为一个无操作的py3k。py3k的编码硬连线到“ utf-8”,更改它会引发错误。

2020-02-13