2014-01-10 73 views
4

在下面的代码中,Python似乎没有使用阿拉伯字母。有任何想法吗?在Python中打印阿拉伯语/波斯语字母2.7

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import nltk 
sentence = "ورود ممنوع" 

tokens = nltk.word_tokenize(sentence) 

print tokens 

结果是:

>>> 
['\xd9\x88\xd8\xb1\xd9\x88\xd8\xaf', '\xd9\x85\xd9\x85\xd9\x86\xd9\x88\xd8\xb9'] 
>>> 

我也试过字符串前增加一个u,但它并没有帮助:

>>> u"ورود ممنوع">>> 
['\xd9\x88\xd8\xb1\xd9\x88\xd8\xaf', '\xd9\x85\xd9\x85\xd9\x86\xd9\x88\xd8\xb9'] 
+0

你试过'U “ورودممنوع”'? – RedX

+0

阅读最后一行。 – Omid

+0

添加'u“ورودممنوع”'时的输出是什么? –

回答

4

您在列表正确的结果与字节字符串:

>>> lst = ['\xd9\x88\xd8\xb1\xd9\x88\xd8\xaf', 
      '\xd9\x85\xd9\x85\xd9\x86\xd9\x88\xd8\xb9'] 
>>> for l in lst: 
... print l 
... 
ورود 
ممنوع 

将其转换为Unicode,您可以使用列表comprehantion:

>>> lst = [e.decode('utf-8') for e in lst] 
>>> lst 
[u'\u0648\u0631\u0648\u062f', u'\u0645\u0645\u0646\u0648\u0639'] 

Printing Unicode Char inside a List

+0

它*显示*相同,但它不同于可能产生的结果(当然也取决于预期的结果)。 –

+0

@ IgnacioVazquez-Abrams nltk.word_tokenize按字分割字符串,并且我们有字节字符串的字列表......对我来说似乎还行 – ndpu

+0

它将文本转化为字节。这不是它的工作。 –

相关问题