pythonencodingxml-parsinglxmlnon-ascii-characters

SyntaxError of Non-ASCII character


I am trying to parse xml which contains the some non ASCII cheracter,

the code looks like below

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)

but it shows me error on the line 'content = ...' like

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

in the terminal it's working but while running on the eclipse IDE it's giving me a error.

Don't know how to overcome..


Solution

  • You should define source code encoding, add this to the top of your script:

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

    The reason why it works differently in console and in the IDE is, likely, because of different default encodings set. You can check it by running:

    import sys
    print sys.getdefaultencoding()
    

    Also see: