默认情况下,Python 3 对源代码文件使用 UTF-8 编码。我还应该在每个源文件的开头使用编码声明吗?像# -*- coding: utf-8 -*-
问问题
48285 次
2 回答
135
因为默认值是UTF-8,所以您只需要在偏离默认值时使用该声明,或者如果您依赖其他工具(如 IDE 或文本编辑器)来使用该信息。
换句话说,就 Python 而言,只有当您想要使用不同的编码时,您才必须使用该声明。
其他工具,例如您的编辑器,可以支持类似的语法,这就是PEP 263 规范允许语法相当灵活的原因(它必须是注释,文本coding
必须存在,后跟一个:
或=
字符和可选的空格,后跟一个公认的编解码器)。
请注意,它仅适用于 Python读取源代码的方式。它不适用于执行该代码,因此不适用于打印、打开文件或任何其他 I/O 操作如何在字节和 Unicode 之间进行转换。有关 Python、Unicode 和编码的更多详细信息,我强烈建议您阅读Python Unicode HOWTO或 Ned Batchelder 的非常详尽的Pragmatic Unicode talk。
于 2012-12-29T15:28:41.447 回答
11
不,如果:
- 整个项目仅使用
UTF-8
,这是默认设置。 - 并且您确定您的 IDE 工具不需要每个文件中的编码声明。
是的,如果
- 您的项目依赖于不同的编码
- 或依赖于许多编码。
对于多编码项目:
如果某些文件在
non-utf-8
.UTF-8
Explicit is better than implicit.
参考:
- PyCharm 不需要该声明:
- vim 不需要那个声明,但是:
# vim: set fileencoding=<encoding name> :
于 2019-03-08T09:14:12.263 回答