python SyntaxError: Non-ASCII character '\xd5' in file

时间:2021-09-10 07:14:09

我使用的是python2.7, 在pycharm想运行程序,但是却报出了SyntaxError: Non-ASCII character '\xd5' in file

原因是因为源码中包含了中文注释,Python默认是以ASCII作为编码方式的,如果在自己的Python源码中包含了中文,此时即使你把自己编写的Python源文件以UTF-8格式保存了;但实际上,这依然是不行的。

解决方法:

在源码的第一行添加如下语句:

#-*- coding: UTF-8 -*-

或者

#coding=utf-8

(注:此语句一定要添加在源代码的第一行,而且要在添加了这句之后,再在程序中添加中文注释,否则pycharm还是会报错)

在pycharm中,即使声明了使用utf-8编码,在使用print输出中文时,还是要将中文转成unicode,否则还是会输出乱码。

例如:

print u'中国'

*总结:声明python文件编码*

1) 如果没有文件编码类型的声明,则python默认以ASCII编码去处理,当文件中包含非ASCII编码的字符时(如中文),python解析器去解析python文件,就会报错。

2) 必须放在python文件的第一行或第二行

3) 为了照顾特殊的Windows中的带BOM(’\xef\xbb\xbf’)的UTF-8:

如果你的python文件本身编码是带BOM的UTF-8,即文件前三个字节是:’\xef\xbb\xbf’,那么:

i. 即使你没有声明文件编码,也自动当做是UTF-8的编码

ii.如果你声明了文件编码,则必须声明UTF-8(和你文件编码本身相一致的),否则由于声明的编码和实际编码不一致,会报错

因此,python脚本的前两行,一般为声明解释器和字符编码:

 #!/usr/bin/python
# -*- coding: utf-8 -*-