configparser.ConfigParser() read .ini 文件報錯


  首先收集下規律:

  1、如果 ini 中沒有中文,直接讀配置是沒問題的

 

   2、如果配置中加入了中文,則會得到編碼問題的錯誤

 

   3、加入 encoding=utf-8,則又能讀取成功

 

   4、win10 下編輯保存 ini 文件,就又會報錯:

 

   5、這時再調整  coding=utf-8-sig,又沒有錯誤能讀取出來:

 

  

 

總結:

  1、如果你的 ini 配置中有中文,則讀取文件配置時,要增加coding=utf-8-sig,這樣win10下編輯保存配置文件則不會報錯

  2、如果 ini 文件中並不存在中文,則使用默認,直接讀取配置文件即可~

 

 

備注:utf-8 和 utf-8-sig 的區別

  1、”utf-8“ 是以字節為編碼單元,它的字節順序在所有系統中都是一樣的,沒有字節序問題,因此它不需要BOM,所以當用"utf-8"編碼方式讀取帶有BOM的文件時,它會把BOM當做是文件內容來處理, 也就會發生類似上邊的錯誤.

  2、“uft-8-sig"中sig全拼為 signature 也就是"帶有簽名的utf-8”, 因此"utf-8-sig"讀取帶有BOM的"utf-8"文件時,則會把BOM單獨處理,與文本內容隔離開.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM