ipython笔记本中的Unicode输出

时间:2014-02-03 23:23:39

标签: python unicode ipython ipython-notebook

我必须在IPython Notebook中使用Unicode(西里尔文)字符。有没有办法用Unicode输出字符串,而不是unicode或utf8代码?我想在下面的最后两个例子中输出["АБ","ВГ"]

In [62]: "АБВ"

Out[62]: '\xd0\x90\xd0\x91\xd0\x92'

In [63]: u"АБВ"

Out[63]: u'\u0410\u0411\u0412'

In [64]: print "АБВ"

АБВ

In [65]: print u"АБВ"

АБВ

In [66]: print ["АБ","ВГ"]

['\xd0\x90\xd0\x91', '\xd0\x92\xd0\x93']

In [67]: print [u"АБ",u"ВГ"]

[u'\u0410\u0411', u'\u0412\u0413']

3 个答案:

答案 0 :(得分:5)

在Python 2中(使用或不使用IPython),您可以使用unicode_escape字符串编解码器来模拟正确的Unicode repr

In [1]: print repr([u"АБ",u"ВГ"]).decode('unicode_escape')

[u'АБ', u'ВГ']

https://docs.python.org/2/library/codecs.html#python-specific-encodings

与Mark Ransom的解决方案不同,这适用于大多数常见数据类型(包括例如字典)。请注意,这可以防止IPython很好地格式化大型数据结构。

答案 1 :(得分:3)

你必须切换到Python 3并获得很好的repr的Unicode字符串。

答案 2 :(得分:1)

不要打印出整个列表,分别打印出列表中的每个元素。或者将列表转换为字符串:

print u'[' + u','.join(string_list) + u']'
相关问题