Python 3默认使用UTF-8编码作为源代码文件。我是否仍应在每个源文件的开头使用编码声明?喜欢# -*- coding: utf-8 -*-
由于默认值为UTF-8,因此只有在偏离默认值或依赖其他工具(如 IDE 或文本编辑器)使用该信息时,才需要使用该声明。
换句话说,就Python而言,只有当你想使用不同的编码时,你才必须使用该声明。
其他工具(例如编辑器)可以支持类似的语法,这就是为什么 PEP 263 规范允许语法具有相当大的灵活性(它必须是注释,文本coding
必须在那里,后跟:
或=
字符和可选的空格,然后是公认的编解码器)。
请注意,它仅适用于 Python读取源代码的方式。它不适用于执行该代码,因此不适用于打印、打开文件或任何其他 I/O 操作如何在字节和 Unicode 之间转换。有关 Python、Unicode 和编码的更多详细信息,我强烈建议您阅读 Python Unicode HOWTO,或 Ned Batchelder 非常彻底的Pragmatic Unicode演讲。
否,如果:
- 整个项目仅使用
UTF-8
,这是默认值。 - 并且您确定您的 IDE 工具不需要在每个文件中使用该编码声明。
是的,如果
- 您的项目依赖于不同的编码
- 或依赖于许多编码。
对于多编码项目:
如果某些文件在
non-utf-8
中编码,那么即使对于这些 编码在UTF-8
你也应该添加编码声明,因为 黄金法则是Explicit is better than implicit.
参考:
- PyCharm不需要该声明:
在 pycharm 中为特定文件配置编码
- vim 不需要该声明,但是:
# vim: set fileencoding=<encoding name> :