我正在尝试学习在读取PEP 263的源文件中使用编码声明,但我自己进行了尝试,但遇到了一些麻烦。
这是我的文件cod.py:
# -*- coding: utf-16 -*-
print('ciao')
我使用UTF-16编码保存了它;现在:
antox@antox-pc ~/Scrivania $ python3 cod.py
File "cod.py", line 1
SyntaxError: Non-UTF-8 code starting with '\xff' in file cod.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
所以我不明白我哪里出了问题。
PS我正在使用gedit 2.30.4
不接受将UTF-16作为Python源代码的编码。根据PEP 263(概念部分第1项):
允许以上述方式处理前两行的任何编码都可以用作源代码编码,其中包括ASCII兼容编码以及某些多字节编码,例如Shift_JIS。它不包括对所有字符使用两个或多个字节的编码,例如UTF-16。这样做的原因是使令牌检测器中的编码检测算法保持简单。
因此,您会遇到以下错误:可以使用其他编码(默认的UTF-8除外),只要它可以被Python检测到即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句