在源文件中声明编码时出现问题



我正在尝试学习在读取 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

所以我不明白我错在哪里。

附言我正在使用 gedit 2.30.4

不接受

UTF-16作为Python源代码的编码。摘自PEP 263(概念部分,第1项):

允许处理 上面指示的方式允许作为源代码编码,这 包括 ASCII 兼容编码以及某些 多字节编码,例如Shift_JIS。它不包括 对所有字符使用两个或更多字节的编码,例如 例如 UTF-16。这样做的原因是保留编码 检测算法在分词器中简单。

所以你得到的错误是意料之中的:你可以使用不同的编码(除了默认的UTF-8),只要它能被Python检测到。

最新更新