문제

I have to work with Unicode (cyrillic) characters in IPython Notebook. Are there any way to output strings in Unicode, not their unicode or utf8 codes? I'd like to have ["АБ","ВГ"] as output in the last two examples below.

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']
도움이 되었습니까?

해결책

In Python 2 (with or without IPython), you can use the unicode_escape string codec to mimic proper Unicode reprs:

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

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

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

Unlike Mark Ransom's solution, this works for most common data types (including e.g. dictionaries). Note that this prevents IPython's nice formatting of large data structures, though.

다른 팁

You have to switch to Python 3 and get nice repr's of Unicode strings.

Don't print out a whole list, print out each element of the list separately. Or convert the list to a string:

print u'[' + u','.join(string_list) + u']'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top