我的代码片段在这里:
QSettings setting("xxx.ini", QSettings::Format::IniFormat);
setting.setIniCodec(QTextCodec::codecForName("UTF-8"));
setting.beginGroup(u8"运动控制器");
setting.setValue(u8"运动控制器", u8"运动控制器");
setting.endGroup();但是上面写的是这样的:
[%U8FD0%U52A8%U63A7%U5236%U5668]
%U8FD0%U52A8%U63A7%U5236%U5668=运动控制器因此,我似乎正确地设置了编码(部分),但我应该做什么来将该部分和名称从某些百分比符号代码更改为文本呢?
环境为Qt 5.12.11和Visual 2019
发布于 2021-08-23 22:15:12
不幸的是,这是QSettings中无法更改的硬编码行为。
在节名和键名中,Unicode字符<= U+00FF ( a..z、A..Z、0..9、_、-或.除外)以%XX十六进制格式编码,较高的字符以%UXXXX格式编码。setIniCodec()中指定的编解码器对此行为没有任何影响。
键值在指定的编解码器中写入,在本例中为UTF-8。
https://stackoverflow.com/questions/68888094
复制相似问题