[英]Wrong encoding when reading file in Python 3?
當我在 python 中讀取文件並將其打印到屏幕上時,它無法正確讀取某些字符,但是,將這些相同的字符硬編碼到變量中打印就好了。 這是一個示例,其中“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 編碼。
功能open
默認情況下不使用UTF-8。 正如文檔所說:
在文本模式下,如果未指定編碼,則使用的編碼取決於平台:
locale.getpreferredencoding(False)
以獲取當前區域設置編碼。
因此,這取決於,並且可以肯定的是,您必須自己指定編碼。 如果文件以 UTF-8 格式保存,您應該這樣做:
with open('test.html', 'r', encoding='utf-8') as file:
另一方面,不清楚文件是否以 UTF-8 編碼保存。 如果不是,您將不得不選擇另一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.