[英]Change to recognized encoding when reading a text file?
當使用(例如)UTF-8編碼打開文本文件進行閱讀時,是否可以在閱讀過程中更改編碼?
動機:很可能您需要讀取使用非默認編碼編寫的文本文件。 文本格式可能包含有關使用的編碼的信息。 讓一個HTML文件作為示例,或者XML,或者ASCIIDOC,以及許多其他文件。 在這種情況下,編碼信息上方的行僅允許包含ASCII或某些默認編碼。
在Python中,可以以二進制模式讀取文件,然后自行將bytes
類型的行轉換為str
。 當在某行上找到有關編碼的信息時,只需切換將行轉換為unicode字符串時要使用的編碼。
在Python 3中,使用TextIOBase
實現文本文件,該文件還定義了encoding
屬性, buffer
和其他內容。
有什么好方法可以更改編碼信息(用於解碼bytes
),以便以所需的方式解碼下一行?
經典用法是:
然后:
請參見以下示例: 檢測XML文件中的字符編碼(Python配方) 注意:該代碼有些陳舊,但很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.