Python 3中默认使用UTF-8编码的源代码文件。 如果我仍然使用编码声明在每个源文件的开头? 像# -*- coding: utf-8 -*-
Answer 1:
因为默认值是 UTF-8,你只需要当你从偏离默认使用该声明,或者如果你依赖其他工具(如您的IDE或文本编辑器)来利用这些信息。
换句话说, 尽可能的Python而言 ,只有当你想使用的编码与不同你有使用了上述声明。
其他工具,如编辑器,可以支持类似的语法,这就是为什么PEP 263规范允许在语法相当大的灵活性(它必须是评论,文本coding
必须在那里,后跟一个:
或=
字符和可选的空白,其次是公认的编解码器)。
请注意,它仅适用于Python的读取源代码 。 它并不适用于执行该代码,所以不能打印,打开文件,或者任何其他的I / O操作字节和Unicode之间如何转化。 有关Python,Unicode和编码的详细信息,我强烈建议你阅读Python的Unicode指南 ,或非常彻底务实的Unicode谈话由斯内德尔德。
Answer 2:
不,如果:
- 整个项目仅使用
UTF-8
这是一种默认。 - 而你确定你的IDE工具并不需要在每个文件编码声明。
是的,如果
- 你的项目依赖于不同的编码
- 或依赖于许多编码。
对于多编码的项目:
如果某些文件在编码
non-utf-8
那么即使这些编码UTF-8
你应该添加编码声明过,因为黄金法则是Explicit is better than implicit.
参考:
- PyCharm不需要那么声明:
在pycharm特定文件中配置编码
- Vim不需要这个声明,但是:
# vim: set fileencoding=<encoding name> :
文章来源: Should I use encoding declaration in Python 3?