Mic*_*cha 4 python encoding commenting python-2.7 python-3.x
最初,我学会了用这种方式在Python 2.7中指定源代码编码:
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
现在我注意到,PEP263也允许这样:
# coding=utf-8
Run Code Online (Sandbox Code Playgroud)
这些之间有什么不同吗?编辑器兼容性,跨平台等怎么样?
那么Python 3呢?这个注释是否仍然需要python 3或者python 3中的任何代码默认为utf-8?
看看PEP3120,它将python源代码的默认编码更改为UTF-8
因此,对于python 3.x,可以在文档中找到:
如果Python脚本的第一行或第二行中的注释与正则表达式编码[=:]\s*([ - \w.] +)匹配,则此注释将作为编码声明处理[...] 建议编码表达式的形式是:
Run Code Online (Sandbox Code Playgroud)# -*- coding: <encoding-name> -*-这也得到了GNU Emacs的认可,以及
Run Code Online (Sandbox Code Playgroud)# vim:fileencoding=<encoding-name>这是Bram Moolenaar的VIM认可的.如果未找到编码声明,则默认编码为UTF-8
因此,带回家的消息是: