Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file

在这里插入图片描述
在运行Python的时候,如果出现上图的错误信息,别担心,这是因为当你使用中文输出或注释时运行脚本的时候,导致出现问题。这是因为python默认的编码文件是ASCII码,但是你的代码中使用中文或者非英语字符,第一种最最简单的方法就是去文件里把中文部分处理掉,如果不想动它,可以参考以下几种方法:

建议在每个源文件的基础上,使用文件顶部的特殊注释声明编码,使python源代码编码既可见又可更改。为了让python知道这个编码声明,对于处理python源代码数据,需要进行一些概念更改。

如果没有给出其他编码提示,python将默认使用ascii作为标准编码。
要定义源代码编码,必须将一个提示,放到文件的第一行或第二行

# coding=<encoding name>

或者使用下面这两种格式也可以(这种格式支持更多的流行编辑器):

#!/usr/bin/python
# -*- coding: <encoding name> -*-
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :

更准确地说,第一行或第二行必须与以下正则表达式匹配:

^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)

然后将此表达式的第一组解释为编码名称。如果Python不能识别该编码,则在编译期间会引发错误。在包含编码声明的行上不能有任何python语句。如果第一行与第二行匹配,则忽略第二行。
为了帮助Windows等平台在Unicode文件的开头添加Unicode BOM标记,utf-8签名\xef\xbb\xbf也将被解释为“utf-8”编码(即使没有给出特殊的编码注释)。
如果源文件同时使用utf-8 BOM标记签名和magic编码注释,则只允许对注释进行“utf-8”编码。任何其他编码都会导致错误。

以下是一些示例,用于说明在Python源文件顶部定义源代码编码的不同样式:

(1)使用二进制和Emacs样式的文件编码注释:

#!/usr/bin/python
# -*- coding: latin-1 -*-
import os, sys
...

#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import os, sys
...

#!/usr/bin/python
# -*- coding: ascii -*-
import os, sys
...

(2)不带注释,使用纯文本:

# This Python file uses the following encoding: utf-8
import os, sys
...

(3)文本编辑器可能有不同的定义文件编码的方法,例如:

#!/usr/local/bin/python
# coding: latin-1
import os, sys
...

(4)如果没有编码注释,python的解析器将采用ASCII文本:

#!/usr/local/bin/python
import os, sys
...

(5)对不起作用的注释进行编码:
A.失踪的“编码前缀::”

#!/usr/local/bin/python
# latin-1
import os, sys
...

B.编码注释不在第1行或第2行:

#!/usr/local/bin/python
#
# -*- coding: latin-1 -*-
import os, sys
...

C.不支持的编码:

#!/usr/local/bin/python
# -*- coding: utf-42 -*-
import os, sys
...
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Αиcíеиτеǎг

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值