【QT】QSettings读取中文乱码

解决QSettings读取中文乱码

    QString sConfigFile = sDataDir + QDir::separator() + "config" + QDir::separator() + "Info.ini";
    QSettings configFile(sConfigFile, QSettings::IniFormat);
    configFile.setIniCodec("utf-8");

QSettings存储格式

  • NativeFormat:使用操作系统推荐的存储方式,如Windows的注册表、macOS的plist文件等。
  • IniFormat:将数据保存为INI格式的文本文件。
  • CustomFormat:允许指定自定义的存储格式(如XML、JSON等),但需配合自定义的QSettings backend实现。

在Windows平台,当使用QSettings::NativeFormat时,路径名必须使用"/"作为分隔符

其他方式(未验证)

通过初始化 QTextCodec 来影响整个 Qt 应用程序的编码处理。在应用程序的 main() 函数中,设置默认的文本编解码器为 UTF-8 可以帮助解决乱码问题

#include <QTextCodec>  

int main(int argc, char *argv[]) {  
    QCoreApplication a(argc, argv);  
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));  
    // ... 其他代码 ...  
    return a.exec();  
}

QSettings遍历子组

[General]  
AppName=MyApp  
Version=1.0  
  
[UserSettings]  
Username=User123  
Password=pass123  
Language=en  
  
[Advanced]  
DebugMode=false  
LogFile=log.txt  
MaxConnections=10
#include <QCoreApplication>  
#include <QSettings>  
#include <QDebug>  
  
int main(int argc, char *argv[])  
{  
    QCoreApplication a(argc, argv);  
  
    // 初始化QSettings对象,指向example.ini文件  
    QSettings settings("example.ini", QSettings::IniFormat);  
  
    // 获取所有的子组(或称为"sections"或"groups")  
    QStringList groups = settings.childGroups();  
  
    // 遍历所有子组  
    for (const QString &group : groups) {  
        // 切换到当前子组  
        settings.beginGroup(group);  
  
        // 打印子组名  
        qDebug() << "[" << group << "]";  
  
        // 获取当前子组下的所有键  
        QStringList keys = settings.allKeys();  
  
        // 遍历所有键,并打印其值  
        for (const QString &key : keys) {  
            // 读取并打印键值对  
            qDebug() << key << "=" << settings.value(key).toString();  
        }  
  
        // 结束当前子组,返回到根组  
        settings.endGroup();  
  
        // 打印一个空行作为分隔符  
        qDebug() << "";  
    }  
  
    return a.exec();  
}

相关推荐

  1. 【QT】QSettings读取中文

    2024-06-14 01:54:04       8 阅读
  2. CentOS 中文

    2024-06-14 01:54:04       23 阅读
  3. window环境C++读取中文的文档问题

    2024-06-14 01:54:04       6 阅读
  4. less中文问题

    2024-06-14 01:54:04       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 01:54:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 01:54:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 01:54:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 01:54:04       18 阅读

热门阅读

  1. Llama2微调

    2024-06-14 01:54:04       6 阅读
  2. Python记忆组合透明度语言模型

    2024-06-14 01:54:04       8 阅读
  3. screenrecord

    2024-06-14 01:54:04       6 阅读
  4. 高精度汽车衡的应用领域有哪些?一文说清楚

    2024-06-14 01:54:04       6 阅读
  5. 时间类:SimpleDateFormatk

    2024-06-14 01:54:04       10 阅读
  6. window系统下为django自动绘制模型类关系图

    2024-06-14 01:54:04       7 阅读
  7. GaussDB系统视图归纳总结及常用运维SQL

    2024-06-14 01:54:04       9 阅读
  8. 开源项目-MES制造执行系统

    2024-06-14 01:54:04       9 阅读
  9. 58.强制类型转换

    2024-06-14 01:54:04       9 阅读
  10. 【Python入门与进阶】Python中变量的输出方式

    2024-06-14 01:54:04       9 阅读