Qt读写ini文件中文乱码

QSettings 的 ini文件

语法:由节、键、值组成

节:section

参数:(Key键= value值 )

ini文件注释一分号(;)开头

QSettings settings("config.ini",QSettings::IniFormat);

settings.setIniCodec(QTextCodec::codecForName("UTF-8"));  //在此添加编码格式设置(如果INI文件编码为UTF-8则这里设置UTF-8,如果为GB2312,则这里设置GB2312,两者一致),即可读写ini文件中的中文

注意:似乎只能解决 value的中文显示问题。

  1. section 和 key依然乱码,不过由于这2个要在算法中参与运算,采用多国语言的话,会让程序变得复杂。

注:

section 和 key:Qt将采用它们来进行内部程序运算,因此,只接受 latin1字符?应该是这样的?

可能原因?:内部程序运算,如果采用 unicode编码值,会让源码变得复杂,运行速度变慢,以及软件体积变大;

value:可以接受非latin1的其他 unicode编码值。

2. QSettings 默认按照“字符编码”排序,有些场景下不容易处理?

================

使用QT的QSettings读写ini配置文件时,如果文件中有中文或者要把中文写到配置文件,出现了乱码现象。

解决办法:

我的工程文件使用了默认的编码方式(win7 qt4.8+vs2008)system,在读写配置文件的时候,在

QSettings set(filePath, QSettings::IniFormat);

之后,读数据之前添加如下代码:

set.setIniCodec(QTextCodec::codecForName("system"));

编码方式可根据实际情况进行修改

说明:使用QSettings会导致配置文件中的注释在写文件时被清掉

参考:https://blog.csdn.net/houxiaoliwang/article/details/104989680

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值