PYTHON中的希腊语编码

PYTHON中的希腊语编码,python,encoding,Python,Encoding,我正在尝试存储一个字符串,并在python中使用nltk对其进行标记。但我不明白为什么在标记它(它创建了一个列表)后,我看不到列表中的字符串。。 有人能帮我吗 代码如下: #a="Γεια σου" #b=nltk.word_tokenize(a) #b ['\xc3\xe5\xe9\xe1', '\xf3\xef\xf5'] 我只是希望能够定期查看列表的内容 Thx提前您可以看到字符串。由于您的终端编码设置,字符由转义序列表示。将终端配置为在UTF-8中接受输入并显示输出。您使用的是Pyth

我正在尝试存储一个字符串,并在python中使用nltk对其进行标记。但我不明白为什么在标记它(它创建了一个列表)后,我看不到列表中的字符串。。 有人能帮我吗

代码如下:

#a="Γεια σου"
#b=nltk.word_tokenize(a)
#b
['\xc3\xe5\xe9\xe1', '\xf3\xef\xf5']
我只是希望能够定期查看列表的内容


Thx提前

您可以看到字符串。由于您的终端编码设置,字符由转义序列表示。将终端配置为在UTF-8中接受输入并显示输出。

您使用的是Python 2,其中不固定引号表示字节,而不是字符串(如果您不确定差异,)。切换到Python 3(已修复此问题),或者在所有字符串前面加上
u
,然后打印字符串(而不是显示它们的
repr
,这在Python 2.x中有所不同):


我如何配置它们?(我使用GUI python外壳)如果我这样工作,我将能够在创建列表时使用词干分析器和pos标记器??我不使用GUI外壳。查阅文档。不,由于终端编码,字节(不是字符)不由转义序列表示;这只是他们的
repr
resentation。在正确配置的终端中观察
u'ä'
vs
print(u'ä')
vs
print(repr(u'ä'))
。@phihag因为python没有字符类型,所以您没有进行任何区分。@Marcin但是python有字符串类型,问题根本没有使用它。观察
isinstance(“Γειασοο”,字节)
我的问题不是“打印”解决方案……我只是想能够看到b的内容,这样我以后就可以用pos标记和词干等语言功能来处理它们。这有可能吗?@GreekBurner好吧,你看到的是
b
的内容,只是不在你期望的代表中。您可以切换到Python3,其中
的默认表示形式为
εεα∑∑∑∑∑∑ογ
。Thx但我使用的nltk包仅支持Python2.:(无论如何thx@GreekBurner在那里,但是仅仅使用
print
(并且接受Python 2的表示方式很奇怪)可能确实是更容易的方法。@phihag:建议切换Python版本,只是因为OP不知道
repr()之间的区别
print
产生的东西是疯狂的。注意:问题不在于Unicode字符串文本与bytestring文本(Unicode字符串的
repr()
也是不可读的)。
>>打印“\n”。join(“εεια∑γ”.split())
尽管所有内容都是字节,但仍会生成所需的输出。尽管用于处理文本,应尽可能使用Unicode字符串。
>>> import nltk
>>> a = u'Γεια σου'
>>> b = nltk.word_tokenize(a)
>>> print(u'\n'.join(b))
Γεια
σου