[英]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.