1

我编写了这段代码来通过 python 处理阿拉伯语

 import codecs
 file = codecs.open("C:\Python27\CCA_raw_utf8.txt","r","utf-8")
 text= file.read()
 ####################################

 print "\n "," --------------------------------------------"

 text=text[1:]
 words=text.split()

 for w in words:
    if w == unicode ("الشيخ","utf-8"):
    print w

但它不起作用,并且会引发错误:

if w == unicode ("الشيخ","utf-8"):
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc7 in position 0: invalid    continuation byte "

为什么我的程序会给出这个结果,我们该如何解决?

4

3 回答 3

1

您可能需要使用支持 Unicode 字符的终端。该代码unicode("الشيخ","utf-8")在osx中​​工作。

尝试使用 IDLE 或其他一些 IDE/终端。

于 2013-10-24T04:18:38.927 回答
0

也许您的文本编辑器没有以 UTF-8 存储和显示文本,而是使用了另一种编码。尝试改用 Unicode 文字:

if w == u"الشيخ":

如果这仍然不起作用,您需要确定您的编辑器正在使用哪种编码并将其替换为"utf-8".

于 2013-10-24T04:09:46.133 回答
0

检查以下链接。我认为这对这种情况很有用。

https://wiki.python.org/moin/UnicodeDecodeError

于 2013-10-24T04:09:51.273 回答