Python文件编码格式声明是以源文件第一二行上的注释内容标识,以下三种用都是可以的:
1.直接进行声明
1 |
# coding=<encoding name> |
2.解释器声明后进行声明
1 2 |
#!/usr/bin/python # -*- coding: <encoding name> -*- |
3.或者一些编辑器可以识别的形式
1 2 |
#!/usr/bin/python # vim: set fileencoding=<encoding name> : |
实际确定文件编码其实是在源文件头两行搜索下面这个正则表达式。
1 |
coding[:=]\s*([-\w.]+) |
如果没有进行代码级的编码声明但是文件是以UTF-8形式保存(带有’\xef\xbb\xbf’ 标识)也会被认为是UTF-8编码。如果文件带有UTF-8 BOM标识但是注释声明的不是UTF-8,则会引起错误。
下面的声明都是正确的
1 2 3 |
#!/usr/bin/python # -*- coding: iso-8859-15 -*- import os, sys |
1 2 |
# This Python file uses the following encoding: utf-8 import os, sys |
编码声明不在第一二行则会被忽略。
1 2 3 4 |
#!/usr/local/bin/python # # -*- coding: latin-1 -*- import os, sys |
via PEP 0263
-EOF-
貌似python越来越流行了啊