【问题标题】:SyntaxError of Non-ASCII character [duplicate]非 ASCII 字符的 SyntaxError [重复]
【发布时间】:2013-08-07 09:09:08
【问题描述】:

我正在尝试解析包含一些非 ASCII 字符的 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 编码问题。在 SO 中拥有这种丰富的问题​​描述风格使我们的知识库更好。
  • 如果您将 PYTHON 3 文件导入 PYTHON 2 解释器,您可能会收到此错误。 (这个问题不应该被关闭 - '\xc2' 是一个非常特殊的问题 - 与假设的重复问题提出的问题非常不同。答案应该在这里明确)。跨度>

标签: python encoding xml-parsing lxml non-ascii-characters


【解决方案1】:

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

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

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

import sys
print sys.getdefaultencoding()

另见:

【讨论】:

  • 如果我不包括这一行,那么 python3 不会抛出错误。但是,python2 可以。使它与 python2 一起工作的唯一方法是添加这一行 # -*- coding: utf-8 -*-。但为什么呢?
猜你喜欢
  • 2014-10-01
  • 2012-10-24
  • 2018-08-09
  • 2014-09-16
  • 2011-10-03
  • 2013-05-27
  • 2017-07-27
  • 1970-01-01
  • 2011-03-16
相关资源
最近更新 更多