我收到非英文文本,当我将其附加到词典时,它生成“\ xe0 \ xa6 \ xb9 \ xe0 \ xa6 \ xb0 \ xe0 \ xa6 \ x”就像文本一样
Example:
obj = {}
title = 'non english text'
print "title ...",title
obj['title'] = title
print obj
它回归:
title... non english text
{'title': '\xe0\xa6\xb9\xe0\xa6\'}
任何想法,我该如何解决?
提前致谢。
答案 0 :(得分:3)
您正在查看UTF-8编码数据:
>>> '\xe0\xa6\xb9\xe0\xa6\xb0'.decode('utf8')
u'\u09b9\u09b0'
>>> print '\xe0\xa6\xb9\xe0\xa6\xb0'.decode('utf8')
হর
要将其解码为Unicode文本,请使用.decode('utf8')
。如果您将该字符串直接打印到终端并且您的终端配置为处理UTF-8,它将显示为您解码的那些字符,但dict
表示显示包含数据的python文字表示。
请,请阅读Python Unicode HOWTO和The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)。
答案 1 :(得分:0)
这是一个unicode处理错误。在Python 3所有text
都是unicode
- 给它一个去,你在非ascii字符集中的例子应该可以工作,你会省去一些麻烦。
如果你坚持使用Python 2.x时要注意Martijn所说的话 - 他就是在敲打。