2014-02-08 54 views
2

嗨我收到通过库的文本,当我打印收到的文本时,我看到一些非英文字符为“\ u00e7”,它必须是“ç”,而不是。我猜想我需要编码和重新解码文本,但我对python非常陌生,如果这是正确的方法,我不这么认为。你能指导我的方式吗?使用unicode_escape encoding字符串如何在Python中使用unicode(例如 u00e7)解码文本?

+0

您正在使用哪种版本的Python? – superjump

+0

Python 2.7.5我认为它是最新和最好的。 –

+1

最新是python 3.3.3。这一点很重要,因为unicode字符串的处理已从2.x更改为3.x. – Cilyan

回答

3

解码:

>>> s = r'\u00e7' 
>>> print s 
\u00e7 
>>> print s.decode('unicode-escape') 
ç 
>>> 

如果sys.stdout.encodingascii,打印将提高UnicodeEncodeError;在这种情况下,请明确编码:

>>> print s.decode('unicode-escape').encode('utf-8') 
ç 
+1

这可能是正确的答案,但由于迄今为止OP给出的信息量很大,所以无法分辨。我怀疑这是对的;我的猜测是OP或者已经有了unicode对象,或者他需要将它解码为JSON。没有多少数据源以Python unicode字符串文本的形式提供数据,这是'unicode-escape'处理的。 – user2357112

+0

非常感谢,这可能是正确的答案,但我仍然错过了一些东西。我有这个错误不是解码行,而是打印行。 'UnicodeEncodeError:'ascii'编解码器无法对位置135的字符u'\ u0131'进行编码:序号不在范围内(128)' –

+0

@ smart-dev.org:听起来您已经有了一个Unicode字符串。这是您尝试重新解码Unicode字符串时所得到的错误消息,并且Unicode字符串包含非ASCII字符。 – user2357112

相关问题