插入字典后Python字符串'转换'

时间:2013-01-31 14:53:57

标签: python unicode python-2.7

我收到非英文文本,当我将其附加到词典时,它生成“\ 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\'}

任何想法,我该如何解决?

提前致谢。

2 个答案:

答案 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 HOWTOThe 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所说的话 - 他就是在敲打。

相关问题