更改"区域设置首选编码"

max*_*max 7 python locale character-encoding python-3.x

[使用Python 3.2]

如果我不提供encoding参数open,则使用打开文件locale.getpreferredencoding().因此,例如,在我的Windows机器上,无论何时使用open('abc.txt'),它都将使用解码cp1252.

我想将所有输入文件切换到utf-8.显然,我可以添加encoding = 'utf-8'到我的所有open函数调用.或者,更好的是,encoding = MY_PROJECT_DEFAULT_ENCODING常量在某个地方的全局级别定义.

但我想知道是否有一种干净的方法来避免编辑我的所有open调用,通过更改"默认"编码.是否可以通过更改区域设置来更改?或者通过更改语言环境中的参数?我试图遵循Python手册,但未能理解如何使用它.

谢谢!

Ign*_*ams 3

在 Windows 中,使用 Python 3.3+,chcp 65001在运行 Python 之前在控制台或批处理文件中执行,以便将区域设置编码更改为 UTF-8。

  • @eryksun 感谢您提供的信息,但它对我来说有太多 Windows 特定的术语。我很少使用Windows。我想要的只是对 Windows 8 或 Python 3 说:“亲爱的 Windows 8 / Python 3,请注意,这台计算机上的所有文本文件都应无一例外地以 UTF-8 编码。请记住这一事实将来打开文本文件时。谢谢。” (2认同)