python 去掉 <0xfeff> 字符

Python   2024-04-03 09:03   171   0  

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, "")
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。
闲言碎语
人的一生好像乘坐北京地铁一号线:途经国贸,羡慕繁华;途经天安门,幻想权力;途经金融街,梦想发财;经过公主坟,遥想华丽家族;经过玉泉路,依然雄心勃勃…这时,有个声音飘然入耳:乘客你好,八宝山快到了!顿时醒悟:人生苦短,何不淡然。
赞赏支持

如果觉得博客文章对您有帮助,异或土豪有钱任性,可以通过以下扫码向我捐助。也可以动动手指,帮我分享和传播。您的肯定,是我不懈努力的动力!感谢各位亲~