python 去掉 <0xfeff> 字符

1. 问题

今天用 python 跑文本数据时,发现有些行出现了 <0xfeff> 字符,经过查找,得知某些文件,如果用 UTF-8、UTF-16 或 UTF-32 进行编码,则可能在文件的开头包含字节顺序标记(Byte Order Marker,BOM),即 <0xfeff> 是 BOM,接下来分别介绍一下 BOM,以及给出 python 去除 BOM 的方法。

某些行出现<oxfeff>.png

2. BOM

对于人类而言,很容易便可以知道字节的读取顺序,但是计算机不知道,因此需要给一些指令告诉计算机按照什么顺序读取字节,BOM便是这样的一种指令,其是一种用于标识的unicode字符,它常被用来当做标示以UTF-8、UTF-16或UTF-32为编码的文件。

3. 去除方案

比如需要去除变量 s 的 BOM,python 中只需要使用下面的代码即可。

import codecs
s.replace(codecs.BOM_UTF8, "")

参考文献

[1] 聊一聊BOM
[2] python去掉BOM头的方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容