python syntaxerror non-ascii_python脚本,显示错误SyntaxError: Non-ASCII character

在运行python脚本的时候,如果脚本里面存在中文的话,就会显示类似错误SyntaxError: Non-ASCII character。本文中,苏南大叔就致力于解决这个字符集的问题。

python脚本,显示错误SyntaxError: Non-ASCII character(图1-1)

本文测试环境:mac、python@2.7.0。整体的解决思路就是在顶部增加个shebang行,区别就在于shebang行的具体内容不一样。方案有好几个,随便选一个合适的就行。据说,只有在python@2系列,才会有这样的问题,以为默认的编码是ASCII。python@3是不会有这样的问题的。

基本症状

这个很奇怪的错误,报错如下:SyntaxError: Non-ASCII character '\xe6' in file

在.py脚本里面,有下面的类似语句:format = "%m月%d日 %H:%M"

重点就是代码中的中文,是这些中文导致了报错。当然,您可以说,删除所有的中文,然后改成英文。但是这种方案并不是可行的。请参考在文件顶部增加如下的shebang行。主要目的就是声明这个.py脚本编码为utf8。

shebang方案

在文件顶部添加这些注释,就可以声明文件编码为utf-8,进而识别文件中的中文。#!/usr/bin/python

# -*- coding: utf-8 -*-# This Python file uses the following encoding: utf-8#!/usr/local/bin/python

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

# vim: set fileencoding=utf-8 :

有这么多写法的原因,是因为是否生效,是有个正则表达式来处理的。这个正则表达式是这样的:^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)

相关链接

这个是官方的说明文档:

《python2 中有关文件中文编码的处理方案》

《python3.7如何与python2.7共存?快速切换python版本方案》

总结

问题比较好解决,但是答案有很多样。选择哪个答案做您的解决方案呢?更多python博客文章,请点击苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。

本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。

转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。

未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。

《程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值