簡體   English   中英

在 Python 3 中讀取文件時編碼錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM