当我从控制台运行我的应用程序时,我遇到了许多 Python 的“无法编码”和“无法解码”问题。但是在 Eclipse PyDev IDE 中,默认字符编码设置为 UTF-8 ,我很好。
我四处寻找设置默认编码,有人说Python在启动时删除了 sys.setdefaultencoding
功能,我们不能使用它。
那么最好的解决方案是什么?
原文由 Ali Nadalizadeh 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
这是一个更简单的方法(hack),它可以返回从 — 中删除的
sys
setdefaultencoding()
函数:(Python 3.4+ 的注意事项:
reload()
在importlib
库中。)但是 ,这样做并不安全:这显然是一种 hack,因为当 Python 启动时,
sys.setdefaultencoding()
被故意从sys
中删除。重新启用它并更改默认编码 可能会破坏依赖 ASCII 作为默认编码的代码(此代码可以是第三方的,这通常会使修复它变得不可能或很危险)。PS:这个 hack 似乎不再适用于 Python 3.9。