Python处理BOM文本的解决方案

项目中遇到要读取配置的情况, 所有就用了 ConfigParser 模块, 乍一看没有啥问题, 但是测试过程中发现还是有坑.
在windows版的程序中, 客户配置ini文件一般都是用记事本修改, 但是本身记事本会强制加上一个BOM头, 然后ConfigParser在read时候救护抛错, 尝试了一些方法, 最终用指定read的编码方式的方法解决, 这里贴一下.

configparser.ConfigParser().read(config_file_path, encoding="utf-8-sig")

当然还有别的方法:

fp = open("file.txt")
s = fp.read()
u = s.decode("utf-8-sig")
# That gives you a unicode string without the BOM. You can then use
s = u.encode("utf-8")

本质差不多.

Reference:

  1. https://stackoverflow.com/questions/8898294/convert-utf-8-with-bom-to-utf-8-with-no-bom-in-python
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容