QT中,ini文件中的键值有英文逗号时,读取不出内容,这种情况是为什么?

2019-03-26 12:20发布

源代码读取ini格式文件:const QString A= file_name;QSettings *actionCodeIni = new QSettings(A, QSettings::IniFormat);actionCodeIni->setIniCodec(QTextCodec::codecForName("UTF-8"));actionCodeIni->beginGroup("B");tempKeyStr = actionCodeIni->value(QString::number(key)).toString();actionCodeIni->endGroup();经过上述代码调用,读取ini文件中key的键值是,如果key的键值内容包含了英文的逗号“,”时,
读取的tempKeyStr内容为空。(1)修改为中文的逗号“,”时,可以正常读出内容;(2)修改QTextCodec::codecForName("UTF-8")格式时,读出的内容为空(3)屏蔽QTextCodec::codecForName("UTF-8")时,读出的内容为空求助,这是什么情况?什么原因????
此帖出自Linux与安卓论坛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
RCSN
1楼-- · 2019-03-26 13:51
 精彩回答 2  元偷偷看……
a6591987
2楼-- · 2019-03-26 15:33
RCSN 发表于 2018-6-11 14:06
你的ini文件是什么编码的,是UTF-8编码嘛?如果不是就不要用的QTextCodec::codecForName("UTF-8")。把这个 ...

修改成你说的也不行。情况是这样的,我屏蔽这一句,或者修改成其他格式,只要内容有英文的逗号在,读出的内容都是为空。
ywlzh
3楼-- · 2019-03-26 18:32
本帖最后由 ywlzh 于 2018-6-12 11:00 编辑

自己外部直接操作ini文件,输完键值还偏偏带个符号,还怪起程序了。

这种情况程序给你个空值就很不错了,没让你崩溃就得了吧。
RCSN
4楼-- · 2019-03-26 22:16
a6591987 发表于 2018-6-12 10:17
修改成你说的也不行。情况是这样的,我屏蔽这一句,或者修改成其他格式,只要内容有英文的逗号在,读出的 ...

细节的我不清楚,估计可能是非法字符。QT creater支持debug,你为什么不仿真打断点看下呢
a6591987
5楼-- · 2019-03-26 22:21
ywlzh 发表于 2018-6-12 10:58
自己外部直接操作ini文件,输完键值还偏偏带个符号,还怪起程序了。

这种情况程序给你个空值就很不错了 ...

确实,我这边是直接外部写入键值。 你的意思是,外部写入时,带了因英文的逗号就会造成读取错误? 有没有官方一些的资料参考下哈,因为我试了带其他符号是可以被正确读出来的。
a6591987
6楼-- · 2019-03-26 22:37
RCSN 发表于 2018-6-12 11:11
细节的我不清楚,估计可能是非法字符。QT creater支持debug,你为什么不仿真打断点看下呢

谢谢建议,断点后,变量读取也是空,就是想知道根本原因。

一周热门 更多>