我一直在处理有关Macbook中终端的问题。 我在python字符串中传递希腊语单词,例如
text = 'Καλημέρα κόσμε'
每次我尝试执行任何简单的任务就像拆分空格一样,我得到的结果如下:
['\xce\x9a\xce\xb1\xce\xbb\xce\xb7\xce\xbc\xce\xad\xcf\x81\xce\xb1',
'\xce\xba\xcf\x8c\xcf\x83\xce\xbc\xce\xb5']
当我使用collections.Counter()函数时也会发生同样的事情。
另一方面,当我打印字符串时,输出符合预期:
Καλημέρα κόσμε
我尝试过这里提到的内容:In OSX Lion, LANG is not set to utf8, how fix?(通过将en_US.UTF-8更改为el_GR.UTF-8)没有任何运气。
任何人都知道为什么会发生这种情况以及如何解决这个问题?
提前谢谢。
答案 0 :(得分:0)
这不是您的终端的问题,而是Python(2)如何做事。
即使您没有对其执行任何任务,repr
也将转义任何非ASCII(或不可打印(空格除外))字符:
>>> text = 'Καλημέρα κόσμε'
>>> text
'\xce\x9a\xce\xb1\xce\xbb\xce\xb7\xce\xbc\xce\xad\xcf\x81\xce\xb1 \xce\xba\xcf\x8c\xcf\x83\xce\xbc\xce\xb5'
如果您在Python 3中尝试相同的操作,它将正常打印:
>>> text = 'Καλημέρα κόσμε'
>>> text
Καλημέρα κόσμε
你有没有理由使用Python 2?