web-dev-qa-db-ja.com

アスキーコーデックはバイト0xe9をデコードできません

私はいくつかの調査を行い、解決策を見てきましたが、どれも私のために働いていません。

Python-'ascii 'コーデックはバイトをデコードできません

これは私にはうまくいきませんでした。そして、私は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

そして、デコードを試みました。「é」を置き換えようとしましたが、それも機能しないようです。

6
iqueqiorio

あなたがあなたの行で何をしたいかに基づいて、あなたはここで異なる仕事をすることができます、あなたが通常領事がutf8エンコーディングを使うように領事に印刷したいだけなら、あなたはあなた自身でそれをする必要はありません文字列がunicodeではありません:

>>> output_string = '\n'.join(output_lines)
>>> print output_string
<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 > 

ただし、ファイルに書き込みたい場合は、 codecs モジュールを使用できます。

import codecs
f= codecs.open('out_file','w',encoding='utf8')
0
Kasramvd