web-dev-qa-db-ja.com

非ASCII文字のSyntaxError

いくつかの非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で実行中にエラーが発生しています。

克服する方法がわからない..

84
OpenCurious

ソースコードエンコーディングを定義し、スクリプトの先頭にこれを追加する必要があります。

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

コンソールとIDEで動作が異なる理由は、おそらくデフォルトのエンコードセットが異なるためです。以下を実行して確認できます:

import sys
print sys.getdefaultencoding()

参照:

213
alecxe