查看完整版本: [-- QSettings访问ini配置文件 中文乱码 --]

QTCN开发网 -> Qt中文处理 -> QSettings访问ini配置文件 中文乱码 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

anranzhifeng 2015-06-08 10:25

QSettings访问ini配置文件 中文乱码

QSettings访问ini配置文件时中文出现乱码

以下我试过的几种方法,仍未解决:
1.
configini=new QSettings(filename,QSettings::IniFormat);
configini->setIniCodec("UTF-8");//或者GB2312

2.
configini->setIniCodec(QTextCodec::codecForName("UTF-8")); //或者GB2312

大家帮帮忙~ 谢谢!

dbzhang800 2015-06-08 10:40
请描述乱码的具体现象,并给出最小测试代码 + Qt版本。

孙大蛇 2015-06-08 13:37
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));你试一下

anranzhifeng 2015-06-08 13:49
dbzhang800:请描述乱码的具体现象,并给出最小测试代码 + Qt版本。 (2015-06-08 10:40) 

Qt4.8.5 arm9上使用
//myini.ini
//[VALUE]
//name=卢晶

获得的name是乱码

QString RWini::ReadIni(QString groupname){
   QString filename = "/home/myini.ini";
    QSettings configini=new QSettings(filename,QSettings::IniFormat);
    configini->setIniCodec("UTF-8");

    configini->beginGroup(groupname);
    QString sName;
    if(groupname=="VALUE"){
        sName=configini->value("name").toString();

    }
    configini->endGroup();
    return sName;
}

anranzhifeng 2015-06-08 14:41
孙大蛇:QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));你试一下 (2015-06-08 13:37) 

谢谢你的回复,但还是不行

dbzhang800 2015-06-08 15:23
anranzhifeng:Qt4.8.5 arm9上使用
//myini.ini
//[VALUE]
//name=卢晶
....... (2015-06-08 13:49) 

你这不是完整的测试代码,所以不好确定哪儿出现问题。

1. 你 的 myini.ini 文件是 utf8 编码吗?
2. 你这个 myini.ini 只在这一个地方使用么?在 setIniCodec() 之前,有没有其他地方使用过??

anranzhifeng 2015-06-08 15:40
dbzhang800:你这不是完整的测试代码,所以不好确定哪儿出现问题。
1. 你 的 myini.ini 文件是 utf8 编码吗?
2. 你这个 myini.ini 只在这一个地方使用么?在 setIniCodec() 之前,有没有其他地方使用过?? (2015-06-08 15:23) 

谢谢版主!
完整的代码太长了,所以只是截取了其中一部分。
我把myini.ini从arm拷到主机上,vim看是utf8的(中文也可以正常显示)

myini.ini 在其他地方也有使用

我把有用到myini.ini前都设置成setIniCodec("UTF8");就可以了

谢谢版主!


gonboy 2015-06-08 16:01

1 - 首先确认你的ini文件内码。 是 UTF8, UT8+BOM ,还是其它
2 - 在根据需要设计 setIniCodec/

ini文件,尽量用英文和数字。不要用其它的。


查看完整版本: [-- QSettings访问ini配置文件 中文乱码 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled