Linux下QT读取带中文的ini文件
时间: 2023-09-13 20:02:58 浏览: 100
在 Linux 下使用 QT 读取带中文的 ini 文件,需要注意文件编码的问题。如果 ini 文件使用 UTF-8 编码,那么使用 QSettings 类即可直接读取中文字符。如果 ini 文件使用其他编码方式,你需要根据实际情况设置编解码器。
以下是一个读取 GB2312 编码的 ini 文件的例子:
```c++
#include <QCoreApplication>
#include <QDebug>
#include <QSettings>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建 QSettings 对象,指定 ini 文件路径和格式
QSettings settings("/path/to/gb2312/file.ini", QSettings::IniFormat);
// 设置编解码器为 GB2312
QTextCodec *gbkCodec = QTextCodec::codecForName("GB2312");
settings.setIniCodec(gbkCodec);
// 读取 key 为 "用户名" 的值
QString username = settings.value("用户名").toString();
qDebug() << "用户名:" << username;
// 读取 key 为 "密码" 的值
QString password = settings.value("密码").toString();
qDebug() << "密码:" << password;
return a.exec();
}
```
在这个例子中,我们首先创建了一个 QSettings 对象来读取 GB2312 编码的 ini 文件中的数据。然后,我们获取了 GB2312 编解码器,并将其设置为 ini 文件的编解码器。接着,我们通过 `value()` 方法读取指定 key 的值即可。
需要注意的是,如果你要读写的文本数据使用的编码方式不同于 GB2312 或 UTF-8,你需要根据实际情况调用相应的方法来设置编解码器。
阅读全文