Python读取带BOM的UTF-8文件时,如何去掉控制符 

服务器端技术 - Python

悦读人生 2018-2-13 21:38:39

UTF-8分为两种,一种是不带BOM的,一种是带BOM的。不带BOM的是标准形式,带BOM的主要是微软的习惯。

Windows对于UTF-8 格式的文件存储默认是带有BOM的格式。微软在UTF-8中使用BOM(Byte order mark)的主要原因是可以将UTF-8和ASCII等编码明确区分开。

如果 网页的编码是带BOM的UTF-8,会在body开头处加入一个可见的控制符 &#65279,导致页面头部会出现一个空白行。如果使用记事本编辑器,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM头)。

Python在读取带BOM的UTF-8,使用codecs库,将文件转换为utf-8-sig格式,即可去掉BOM头。代码如下:

import codecs



with open("xx.txt",'r','utf-8-sig') as file:

    line = file.readlines();
返回顶部 手机访问 关注微信 返回底部

扫码访问歪脖网

随时随地,想看就看

关注歪脖网微信

分享 web 知识、交流 web 经验