UnicodeDecodeError,继续字节再次无效

2024-04-18 11:28:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想不出如何一劳永逸地解决这些问题。当我试图写“è”(我是意大利人)时,我第一次遇到这些问题。经过一些研究,我发现在一开始添加“#编码:utf-8”似乎解决了这个问题……直到现在。

我编辑了一两天前写的一段代码..它工作得很好。。。。现在,每当我运行脚本时,它都不起作用:它永远不会启动,而且我会遇到以下错误:

SyntaxError: 'utf-8' codec can't decode byte 0xe0 in position 32: invalid continuation byte.

问题是。。。32号位置?哪里?有问题的线路是什么?我不知道我到底加了什么,因为我做了一些改变。尝试在调试模式下执行也没有帮助,当我在脚本的最开始“单步执行”时,错误会立即出现(顺便说一下,我使用winware101作为空闲,我使用Win7)。抱歉,如果我没有足够的信息,我可以发布代码,但我不敢这么做,这是一个混乱的意大利文字,也许它可能不容易理解到底是怎么回事。

感谢您的回复和节日快乐!


Tags: 代码in脚本编辑编码错误positionbyte
1条回答
网友
1楼 · 发布于 2024-04-18 11:28:41

#coding: utf8是源代码以UTF-8格式保存的声明。确保这实际上是源文件的编码。例如,以下文件是在Windows记事本中创建的,并保存为“ANSI”,在我们Windows上是Windows-1252编码:

#coding: utf8
print('hàllo')

它在Python2.7上产生以下错误:

  File "test.py", line 2
SyntaxError: 'utf8' codec can't decode byte 0xe0 in position 8: invalid continuation byte

如您所见,第2行的第8个位置(从0开始计算)是à,其中Windows-1252是字节0xe0。使用了错误的编码,并且错误消息是清晰的。

为源文件声明正确的编码,或者用UTF-8重新保存源文件。

注意:我没有安装Python3.4,但Python3.5给出了一个不太清楚的错误消息:

  File "x.py", line 1
SyntaxError: encoding problem: utf8

但是,它与错误消息不匹配,但仍然指示文件未使用正确的编码声明。

相关问题 更多 >