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,在文件开头添加 UTF-8 BOM:

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

在 UTF-8 文件中使用 BOM 的主要是 Microsoft 软件,因为 UTF-8 与 UTF-16 和 UTF-32 不同,只有一个字节顺序可供选择,但它显然让 Excel 高兴(呃)。

于 2013-08-14T21:34:52.553 回答