当你在运行python程序发现报以下错误的时候,可能会觉得是文字编码的问题,实际上,的确是和它有关。
在网上查找,大多都是前两种解决办法,但有第三种方法也能解决该问题。
方法一:
在代码首行添加:# coding = utf-8,以下是我的运行结果:
很明显,这个方法没有解决我的问题。
方法二:
在代码首行添加:# coding = gbk,以下是我的运行结果:
好的,咱接着往下看。
方法三:
在代码首行添加:# coding=gb2312,以下是我的运行结果:
此时能看出来我的报错已经解决了。
经过这个例子我发现,该方法的注释代码# coding=gb2312的等号(=)左右并没有空格。于是我又返回去试验了方法一和方法二,结果展示如下:
(由于我忘记截图了,假装此处是方法二成功的截图)
以上三种方法的等号(=)左右不添加空格,就很大可能会成功解决SyntaxError: Non-UTF-8 code starting with '\xa1' in file...的报错。
这个时候得出结论,由于大家具有良好编写代码的习惯,我们会在等号左右加上空格来展现美观和消除python代码中隐约出现的波浪线,但在处理问题的时候,我们多加的一个空格可能就会让我们错失解决问题的方法。
在程序运行成功之后,我又发现了一个现象。
我把上面实验错误的两个方法照例加了空格运行了一遍,结果如下:
没错,居然正确运行了,不敢对大家有所欺瞒,这也的确是我运行后成功的截图。
并且,我把首行添加的解决办法删除后照样运行了一遍,见证“奇迹”的时候到了,结果如下:
原本报错的程序代码在我反复尝试之后感觉像是免疫了一样,居然也能正常运行了。这感觉就仿佛它之前的报错都是假象~,也给我一种是它知道我能解决问题然后放弃报错的错觉。
写到这里,我也有理由怀疑,在我使用方法三解决问题之后,就像是打开了一个开关,这也可能是原来本不能解决我的报错的方法一和方法二为什么在之后一样能解决我的报错的原因。
最后,总结来了:
这里的序号①和序号②是等号(=)左右有无空格的区别。
大家如果遇到了Python报错SyntaxError: Non-UTF-8 code starting with '\xa1' in file...,那么在代码的首行请依次先实践序号①中的内容,问题解决的朋友如果有心情可以尝试实践序号②探索新发现,问题没解决的朋友请继续实践序号②。
希望该文章内容中有能够解决大家SyntaxError: Non-UTF-8 code starting with '\xa1' in file...问题报错的方法。