【发布时间】:2010-10-18 06:02:32
【问题描述】:
PEP 263 定义了如何声明 Python 源代码编码。
通常,Python 文件的前 2 行应以:
#!/usr/bin/python
# -*- coding: <encoding name> -*-
但我看到很多文件以:
开头#!/usr/bin/python
# -*- encoding: <encoding name> -*-
=> encoding 而不是 coding。
那么声明文件编码的正确方式是什么?
是否允许编码,因为使用的正则表达式是惰性的?还是只是声明文件编码的另一种形式?
我问这个问题是因为 PEP 不谈论编码,它只谈论编码。
【问题讨论】:
-
顺便说一下,为了获得更大的灵活性和便携性,建议使用
#!/usr/bin/env python而不是#!/usr/bin/python -
我喜欢这个页面上的所有答案都没有一个简单的工作示例,比如 UTF8。 StackOverly 处于最佳状态。
-
我只是想补充一点,Python 3 已将默认编码从
ascii更改为UTF-8。比较:python 2.7 docs 和 python 3.7 docs。这意味着如果您想指定UTF-8,您可以放心地省略此编码。