【发布时间】:2015-05-10 22:33:24
【问题描述】:
我做了一些研究并看到了解决方案,但没有一个对我有用。
Python - 'ascii' codec can't decode byte
这对我不起作用。而且我知道 0xe9 是 é 字符。但我仍然不知道如何让它工作,这是我的代码
output_lines = ['<menu>', '<day name="monday">', '<meal name="BREAKFAST">', '<counter name="Entreé">', '<dish>', '<name icon1="Vegan" icon2="Mindful Item">', 'Cream of Wheat (Farina)','</name>', '</dish>', '</counter >', '</meal >', '</day >', '</menu >']
output_string = '\n'.join([line.encode("utf-8") for line in output_lines])
这给了我错误ascii codec cant decode byte 0xe9
我已经尝试解码,我尝试替换“é”,但似乎也无法让它工作。
【问题讨论】:
-
您的代码示例无效,不会重现问题;
output_lines是空的,所以你的循环不会做任何事情。您的错误表明您在编码时遇到解码错误,这通常表明您正在尝试对已经编码的数据进行编码。 -
@MartijnPieters 抱歉,我的示例代码中没有显示它已满,但已满。我将把它添加到问题中
-
这仍然不是您的实际
output_lines...当然...您可以在尝试创建output_string之前print output_lines吗 -
@JoranBeasley 是的,但是
output_lines必须更长,所以我缩短了它 -
你的数据已经编码,为什么你觉得需要再次编码?
标签: python unicode encoding utf-8 decode