当前位置:  开发笔记 > 编程语言 > 正文

UnicodeDecodeError,再次使用无效的连续字节

如何解决《UnicodeDecodeError,再次使用无效的连续字节》经验,为你挑选了1个好方法。

我无法弄清楚如何一劳永逸地解决这些问题.当我试着写"è"(我是意大利语)时,我第一次遇到这些问题.经过一些研究,我发现在一开始就添加"#coding:utf-8"似乎解决了这个问题......直到现在.

我编辑了1或2天前编写的代码.它工作得很好....现在,每当我运行脚本时,它都不起作用:它永远不会启动,我会遇到这个错误:

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

问题是......位置32?哪里?什么是有问题的线?我不知道我添加了什么,因为我做了一些改动.尝试在调试模式下执行也没有帮助,当我在脚本的最开始"Step Into"时,错误立即出现(顺便说一句,我使用的是Wingware 101作为IDLE,我正在使用Win7的).对不起,如果我没有足够的信息,我可以发布代码,但我害怕这样做,这是一个用意大利语写的烂摊子,也许不容易理解到底发生了什么.

谢谢你的回复和节日快乐!



1> Mark Tolonen..:

#coding: utf8是源代码以UTF-8 保存的声明.确保它实际上是源文件的编码.例如,以下文件是在Windows记事本中创建的并保存为"ANSI",在美国Windows上是Windows-1252编码:

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

它在Python 2.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重新保存源文件.

注意:我没有安装Python 3.4,但Python 3.5提供了一个不太清晰的错误消息:

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

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

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有