我有一个.txt文件,其内容如下:
b'Afrikaans'
b'\xe1\x8a\xa0\xe1\x88\x9b\xe1\x88\xad\xe1\x8a\x9b'
b'\xd0\x90\xd2\xa7\xd1\x81\xd1\x88\xd3\x99\xd0\xb0'
如何将这些行转换为UTF-8字符串,以便输出如下所示:
Afrikaans
አማርኛ
Аҧсшәа
我尝试了这个,但是只得到了与字节字面量具有相同值的字符串:
with open("encoded.txt", "rb") as filename:
line = filename.readline().strip()
while line:
print(line.decode("utf-8"))
line = filename.readline().strip()
答案 0 :(得分:1)
这些行是Python文字,因此ast.literal_eval
可以将它们解析为Python字节字符串:
import ast
with open('data.txt') as f:
for line in f:
print(ast.literal_eval(line).decode('utf8'))
输出:
Afrikaans
አማርኛ
Аҧсшәа