语法错误:非UTF-8?

时间:2018-07-15 13:19:35

标签: python utf-8

age = int(input("Please type your age:"))
if int(age) >= 18:
    print("Sorry, you couldn't enter!")
else:
    print("Congratulation, have a good time!")

SyntaxError:文件中以'\ xa3'开头的非UTF-8代码转到第1行的to.py,但未声明编码;

为什么?

2 个答案:

答案 0 :(得分:7)

您的代码包含python解释器无法识别的几个字符。它们看起来像常规的(:

In [8]: ord('(')
Out[8]: 40

In [9]: ord('(')
Out[9]: 65288

In [10]: ord(':')
Out[10]: 58

In [11]: ord(':')
Out[11]: 65306

似乎您是从某个地方复制了代码-只需用有效字符手动替换所有括号和冒号

答案 1 :(得分:1)

第一个问题

没有文本,只有编码文本。

如果从文本写入文件,则编写者选择字符编码。文本文件的通信包括字节和字符编码知识。

您正在告诉编译器(可能是默认情况),您的文件是使用UTF-8编码的。就是说不可能(可能是正确的)。因此,您首先必须告诉它它是哪种编码。

另一方面,由于UTF-8是Unicode字符集的非常常见的编码,而Unicode具有您可能会使用的所有字符,并且它是很多程序(包括Python)的默认设置,因此您可以将文件转换为UTF-8。

第二个问题

@soon's answer处理了第二个问题,即使用不属于语法的字符作为语法。他们是confusables