UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 174: illeg...

别老说你输在起跑线上,别人的起跑线是你永远到不了的终点。


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没有字节序的问题。


如果感觉本文对您有帮助可以点个赞哦

本文为学习笔记,转载请标明出处

本文仅供交流学习,请勿用于非法途径

本文仅是个人意见,如有想法,欢迎留言

你可能感兴趣的:(UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 174: illeg...)