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

你可能感兴趣的:(Python处理BOM文本的解决方案)