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

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