关于python:非ASCII字符的SyntaxError

SyntaxError of Non-ASCII character

本问题已经有最佳答案,请猛点这里访问。

我试图解析包含一些非ASCII切拉特的XML,

代码如下

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

但它在"content=…"行中显示错误。喜欢

1
2
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上运行时,它给了我一个错误。

不知道如何克服……


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

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

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

1
2
import sys
print sys.getdefaultencoding()

还可以看到:

  • 为什么用python中的字符串声明unicode?
  • 更改python的默认编码?
  • 定义Python源代码编码的正确方法