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个要在算法中参与运算,采用多国语言的话,会让程序变得复杂。

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


版权声明:本文为ken2232原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。