【发布时间】:2021-08-02 10:49:53
【问题描述】:
我打算在我的机器上设置环境变量 PYTHONUTF8 = 1,如this question 中所述,以确保 open() 函数使用 UTF8 作为默认编码。但我也想确保我的代码不会在另一台机器上静默中断。所以我希望我的脚本包含一个检查:它应该检查 open() 使用什么编码,如果不是 UTF8 则发出警告消息。我的脚本如何检查?
【问题讨论】:
-
为什么不明确并确保在您的程序中完成的所有
open调用都包含参数encoding="utf8"? -
致电
sys.getfilesystemencoding()docs.python.org/3/library/sys.html#sys.getfilesystemencoding 或locale.getpreferredencoding()docs.python.org/3/library/… 并检查他们是否返回'UTF-8'? -
你应该明确编码(“显式优于隐式”是 Python 的一个口头禅)。但简而言之:除了 Windows 之外的所有现代平台都默认使用 UTF-8。 Windows 仍然使用本地编码(取决于语言)。
标签: python python-3.x encoding utf-8