Python (2.7) 打印十六进制而不是特殊字符

Python (2.7) prints hexadecimal instead special characters

我不知道发生了什么,但我正在使用 SAX 读取文件和处理 XML。一个 '€' 字符导致异常,所以我尝试使用 decode/encode.

问题是在我可以这样做之前:

>>> line = '€'
>>> line
'€'

现在它是这样工作的:

>>> line = '€'
>>> line
'\xe2\x82\xac'

这适用于所有特殊字符,例如:á、é、í 等。

我该如何解决?

使用unicode类型:

>>> line = u'€'
>>> print(line)
€

在处理字符集时,了解从哪个编解码器解码和编码到哪个编解码器始终很重要。

作为参考,我使用的是 Python 2.7.8.