别老说你输在起跑线上,别人的起跑线是你永远到不了的终点。
python读取ini文件有中文,报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 174
python3读取ini配置文件时引入的模块
from configparser import ConfigParser
修改前:
cfg = ConfigParser()
cfg.read('../config/email.ini')
修改后:
cfg = ConfigParser()
cfg.read('../email.ini',encoding="utf-8-sig")
备注:这里需要注意的是encoding="utf-8-sig"而不是encoding="utf-8"
这里需要注意的是encoding="utf-8-sig"而不是encoding="utf-8"
这里需要注意的是encoding="utf-8-sig"而不是encoding="utf-8"
重要的事情说三遍
这里顺便说一下utf-8和utf-8-sig
As UTF-8 is an 8-bit encoding no BOM is required and anyU+FEFF character in the decoded Unicode string (even if it’s the firstcharacter) is treated as a ZERO WIDTH NO-BREAK SPACE.
UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一様的,没有字节序的问题,也因此它实际上并不需要BOM(“ByteOrder Mark”)。但是UTF-8 with BOM即utf-8-sig需要提供BOM。
通俗的讲就是utf-8-sig是对字节编码有序的,而utf-8没有字节序的问题。
如果感觉本文对您有帮助可以点个赞哦
本文为学习笔记,转载请标明出处
本文仅供交流学习,请勿用于非法途径
本文仅是个人意见,如有想法,欢迎留言