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的中文显示问题。
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