在python 2.7中打印阿拉伯语/波斯语字母

时间:2014-01-10 14:59:59

标签: python python-2.7 utf-8 nltk

Python在下面的代码中似乎没有使用阿拉伯字母。有什么想法吗?

#!/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']

1 个答案:

答案 0 :(得分: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,您可以使用list 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