簡體   English   中英

在編碼UTF-16時寫入excel字符串

[英]Writing to excel string in encoding UTF-16

我正在以encoding UTF-16模式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

您還需要為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

主要是Microsoft軟件使用UTF-8文件中的BOM,因為UTF-8只有一個字節順序可供選擇,與UTF-16和UTF-32不同,但它顯然讓Excel開心(呃)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM