我应该在Python 3中使用编码声明吗?

时间:2012-12-29 15:27:17

标签: python python-3.x encoding utf-8

默认情况下,Python 3对源代码文件使用UTF-8编码。我还应该在每个源文件的开头使用编码声明吗?与# -*- coding: utf-8 -*-

一样

2 个答案:

答案 0 :(得分:84)

因为默认的 UTF-8,所以当您偏离默认值时,或者依赖其他工具(如IDE或文本编辑器)来使用时,您只需要使用该声明那些信息。

换句话说,就Python而言,只有当你想使用不同的编码时才需要使用该声明。

其他工具(例如编辑器)可以支持类似的语法,这就是为什么PEP 263 specification允许语法具有相当大的灵活性(必须是注释,文本coding必须在那里,后跟一个:=字符和可选的空格,后跟一个识别的编解码器。)

请注意,它仅适用于Python 如何读取源代码。它不适用于执行该代码,因此不适用于打印,打开文件或任何其他I / O操作如何在字节和Unicode之间进行转换。有关Python,Unicode和编码的更多详细信息,我强烈建议您阅读Ned Batchelder的Python Unicode HOWTO或非常彻底的Pragmatic Unicode talk

答案 1 :(得分:1)

否,如果:

  • 整个项目仅使用UTF-8,这是默认设置。
  • 并且您确定您的IDE工具不需要每个文件中的编码声明。

是,如果

  • 您的项目依赖于不同的编码
  • 或依靠多种编码。

对于多编码项目:

  

如果某些文件被编码为non-utf-8,那么即使是这些文件   在UTF-8中进行编码,您也应该添加编码声明,因为   黄金法则是Explicit is better than implicit.

参考:

  • PyCharm不需要该声明:

configuring encoding for specific file in pycharm

  • vim不需要该声明,但是:
# vim: set fileencoding=<encoding name> :