[英]Python not able to read "–" character from text file
使用 Python,我從 API 獲取一些文本數據,並在經過一些轉換后將其存儲在文本文件中,然后從不同的進程讀取此文本文件。
從 API 讀取數據時沒有問題,但在讀取文本文件時出現此錯誤:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 907: invalid start byte
被讀取為 '0x96' 的字節實際上是 API 數據中的“-”字符,並且僅當encoding
參數明確指定為'utf-8'
時才會發生此錯誤。 在打開文本文件時未將encoding
顯式傳遞給open
函數時不會發生這種情況。
我的問題:
encoding
時才會出現此錯誤? 我認為,在其他情況下我們也應該得到相同的錯誤,因為默認編碼也是“UTF-8”。 (如果我錯了,請糾正我)真的很感謝你研究它。 謝謝!
在open()
,默認編碼取決於平台,您可以通過檢查locale.getpreferredencoding()
返回的內容來locale.getpreferredencoding()
系統的默認編碼。 這是來自文檔
對於問題的第二部分,由於在未將utf-8
指定為編碼時不會出現錯誤,因此您可以僅使用locale.getpreferredencoding()
的輸出作為編碼方法。
如果您這樣做,您可以對文本的每一行執行此操作。 由於0x96
被認為是“不可打印的”。
import re
...
line = re.sub(r'\x96',r'\x2D', line)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.