當我在 python 中讀取文件并將其打印到屏幕上時,它無法正確讀取某些字符,但是,這些相同的字符硬編碼到變量 print 中就可以了。以下是“test.html”包含文本“Hall?”的示例:with open('test.html','r') as file: Str = file.read()print(Str)Str = "Hall?"print(Str)這會生成以下輸出:hall?¥Hall?我的猜測是,當文件中的數據被讀入Python時,它的解釋方式有問題,但是我不確定它是什么,因為Python 3.8.5已經默認使用UTF-8編碼。
1 回答

慕容森
TA貢獻1853條經驗 獲得超18個贊
函數默認不使用 UTF-?open
8?。正如文檔所說:
在文本模式下,如果未指定編碼,則使用的編碼取決于平臺:
locale.getpreferredencoding(False)
調用以獲取當前區域設置編碼。
因此,這取決于,并且為了確定,您必須自己指定編碼。如果文件以 UTF-8 保存,您應該這樣做:
with?open('test.html',?'r',?encoding='utf-8')?as?file:
另一方面,尚不清楚該文件是否以 UTF-8 編碼保存。如果不是,您將不得不選擇其他一個。
添加回答
舉報
0/150
提交
取消