我得到一個特殊字符的UnicodeEncodeError
書寫的文本文件:特殊字符UnicodeEncodeError寫作文本文件
File "D:\SOFT\Python3\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\ufffd' in position 956: character maps to <undefined>
我的代碼:
expFile = open(expFilePath, 'w')
# data var is what contains a special char
expFile.write("\n\n" + data)
的數據可能是一些奇怪的字符,從像Microsoft Word這樣的東西被粘貼到應用程序的HTML表單中,並被保存下來,現在我正在導入它。我甚至無法看到它,當我查詢它時,在我的數據庫編輯器中顯示爲菱形。它只是在文本編輯器中佔位符。輸入應該更嚴格地檢查字符集符合性,但事實並非如此。
有沒有辦法對數據進行編碼以使得任何字符可以被I/O處理消化?
或者,有沒有辦法檢查我的str是否符合文件IO期望的字符標準,以便替換違反它的任何數據?
這並不重要,但'data'包含了什麼? –
如果你真的想寫任意字節,試試用'b'作爲'open'的修飾符來切換到二進制模式。 – languitar
這可能是某些來自Microsoft Word之類的奇怪的字符,它被粘貼到應用程序的HTML表單中並被處理,現在我正在導入它。我甚至無法看到它,當我查詢它時,在我的數據庫編輯器中顯示爲菱形。它只是在文本編輯器中佔位符。輸入應該更嚴格地檢查字符集的符合性,但它不是 – amphibient