如何让Python解析以下文本?

如何让Python解析以下文本?,python,ascii,python-unicode,Python,Ascii,Python Unicode,我有一个文本样本: "PROTECTING-ħarsien", 我正试图用以下内容进行解析 import csv, json with open('./dict.txt') as maltese: entries = maltese.readlines() for entry in entries: tokens = entry.replace('"', '').replace(",", "").replace("\r\n", "").split("-")

我有一个文本样本:

"PROTECTING-ħarsien",
我正试图用以下内容进行解析

import csv, json

with open('./dict.txt') as maltese:
    entries = maltese.readlines()
    for entry in entries:
        tokens = entry.replace('"', '').replace(",", "").replace("\r\n", "").split("-")
        if len(tokens) == 1:
            pass
        else:   
            print tokens[0] + "," + unicode(tokens[1])
但我收到一条错误信息

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)

我做错了什么?

您必须将最后一行更改为(这已被测试用于处理您的数据):

如果没有
utf8
,Python会假定源代码是
ascii
编码,因此会出现错误


参见似乎
dict.txt
是UTF-8编码的(
ħ
0xc4 0xa7

那么,你应该:


然后将使用Unicode字符串而不是ByTestRing;因此,您不需要对它们调用
unicode()
,但您可能需要将它们重新编码为您要输出到的终端的编码。

我尝试过这个建议,但仍然会遇到相同的错误。还有什么我可能做错的吗?在输出之前,您是否将字符串重新编码为终端的编码?
print tokens[0] + "," + unicode(tokens[1], 'utf8')
import codecs
with codecs.open('./dict.txt', encoding="utf-8") as maltese:
    # etc.