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