非 ASCII 字符的语法错误 [duplicate]

SyntaxError of Non-ASCII character [duplicate]

提问人:OpenCurious 提问时间:8/6/2013 最后编辑:alecxeOpenCurious 更新时间:3/30/2023 访问量:229974

问:

我正在尝试解析包含一些非 ASCII cheracter 的 xml,

代码如下所示

from lxml import etree
from lxml import objectify
content = u'<?xml version="1.0" encoding="utf-8"?><div>Order date                            : 05/08/2013 12:24:28</div>'
mail.replace('\xa0',' ')
xml = etree.fromstring(mail)

但它在“content = ...”行上显示错误 喜欢

syntaxError: Non-ASCII character '\xc2' in file /home/projects/ztest/responce.py on line 3, 
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

在终端中它正在工作,但是在eclipse IDE上运行时,它给了我一个错误。

不知道如何克服..

Python 编码 xml 解析 lxml 非 ASCII 字符

评论

6赞 DehengYe 8/15/2015
我不认为这是重复的。人们经常遇到这种 python 编码问题。在 SO 中拥有这种丰富的问题描述风格可以使我们的知识库变得更好。
4赞 markling 10/25/2021
如果将 PYTHON 3 文件导入 PYTHON 2 解释器,则可能会收到此错误。(这个问题不应该被关闭 - '\xc2' 是一个非常特殊的问题 - 与假定的重复问题所提出的问题非常不同。答案应该在这里明确)。

答:

282赞 alecxe 8/6/2013 #1

您应该定义源代码编码,将其添加到脚本的顶部:

# -*- coding: utf-8 -*-

它在控制台和 IDE 中的工作方式不同的原因可能是因为设置了不同的默认编码。您可以通过运行以下命令来检查它:

import sys
print sys.getdefaultencoding()

另请参阅:

评论

1赞 seralouk 10/4/2019
如果我不包括此行,则 python3 不会抛出错误。但是,python2 可以。使其与 python2 一起工作的唯一方法是添加此行。但是为什么?# -*- coding: utf-8 -*-