首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QSettings正确地将UTF-8字符写入*.ini文件的[节]和[名称]?

如何使用QSettings正确地将UTF-8字符写入*.ini文件的[节]和[名称]?
EN

Stack Overflow用户
提问于 2021-08-23 06:24:52
回答 1查看 233关注 0票数 0

我的代码片段在这里:

代码语言:javascript
复制
QSettings setting("xxx.ini", QSettings::Format::IniFormat);
setting.setIniCodec(QTextCodec::codecForName("UTF-8"));
setting.beginGroup(u8"运动控制器");
setting.setValue(u8"运动控制器", u8"运动控制器");
setting.endGroup();

但是上面写的是这样的:

代码语言:javascript
复制
[%U8FD0%U52A8%U63A7%U5236%U5668]
%U8FD0%U52A8%U63A7%U5236%U5668=运动控制器

因此,我似乎正确地设置了编码(部分),但我应该做什么来将该部分和名称从某些百分比符号代码更改为文本呢?

环境为Qt 5.12.11和Visual 2019

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-23 22:15:12

不幸的是,这是QSettings中无法更改的硬编码行为。

在节名和键名中,Unicode字符<= U+00FF ( a..zA..Z0..9_-.除外)以%XX十六进制格式编码,较高的字符以%UXXXX格式编码。setIniCodec()中指定的编解码器对此行为没有任何影响。

键值在指定的编解码器中写入,在本例中为UTF-8。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68888094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档