1

モードでテキストファイルを開いていencoding UTF-16ます:

with open(file.txt, 'r', encoding="UTF-16") as infile:

次に、Excelファイルに書き込みたい:

from csv import writer
excelFile = open("excelFile_1.csv", 'w', newline='') 
write = writer(excelFile, delimiter=',')
write.writerows([[input]])

inputテキストファイルの用語はどこにありますかfile.txt

次のエラーが表示されます

UnicodeEncodeError: 'charmap' codec can't encode character '\xe9' in position 113: character maps to <undefined>

Python 3.2 の使用

4

1 に答える 1

3

CSV ファイルの出力エンコーディングも選択する必要があります。

excelFile = open("excelFile_1.csv", 'w', newline='', encoding='UTF16') 

システムのデフォルトのコーデックは、入力ファイル名から読み取っているコードポイントを処理できません。

このファイルを Excel で開くことができない場合があります。この回答の手順に従って、UTF16コーデックを選択して、Excelがファイルを正しく読み取れるようにしてください。

ファイルの先頭に UTF-8 BOM を追加して、UTF-8 を使用することもできます。

excelFile = open("excelFile_1.csv", 'w', newline='', encoding='UTF8')
excelFile.write('\ufeff')  # Zero-width non-breaking space, the Byte Order Mark

UTF-16 や UTF-32 とは異なり、 UTF-8 には1バイトの順序しかないため、UTF-8 ファイルで BOM を使用するのは主に Microsoft ソフトウェアですが、明らかに Excel を満足させます。

于 2013-08-14T21:34:52.553 に答える