关于Ini读取失败的问题

在项目部署中遇到GetPrivateProfileXXX函数读写ini文件失败,错误码为2。问题出在ini文件由utf-8转为utf-8-bom编码导致。分析表明utf-8-bom的三个字节标记导致了问题。提出的解决方案包括:以rb模式读取并去除bom头,或者直接解析ini文件内容。
摘要由CSDN通过智能技术生成

在项目部署过程中,突然发现GetPrivateProfileXXX 相关函数全部操作失败,错误码:2。
在这里插入图片描述
但是可以肯定该ini文件是100%存在的,为什么呢?经过对比发现该文件格式由utf-8变为utf-8-bom。当再次将ini格式切换为utf-8之后一切由恢复正常。

结论:

GetPrivateProfileXXX函数不支持utf-8-bom编码的格式文件。

分析:

utf-8-bomutf-8文件头部增加了三个字节:0xEF, 0xBB, 0xBF标记该文件为utf-8-bom。后面内容和utf-8文件保持一致。

解决方案

  • 方案一:以rb模式读取ini文件,如果ini文件前面三个字节为0xEF, 0xBB, 0xBF则舍弃前面三个字节的内容,将文件另存为ini,之后读取新文件ini。
  • 方案二:读取ini文件内容,然后按照ini格式,解析文件内容。(可参考hv/iniparser
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值