7

QSettings用来将一些设置存储在 INI 文件中。但是,我的程序不是英文的,所以有些设置包含 Unicode 字符串。似乎 Qt 不是以 utf8 或 utf16 编写 INI 文件,而是以其他一些编码,字符串 "Привет мир!" (rus. "Hello world!") 看起来像这样:

WindowTitle=\x41f\x440\x438\x432\x435\x442 \x43c\x438\x440!

我想手动编辑设置文件,但我不能像这样使用它。有没有办法强制 Qt 以 Unicode 格式保存?

4

1 回答 1

17

检查setIniCodec功能QSettings

将访问 INI 文件(包括 Unix 上的 .conf 文件)的编解码器设置为编解码器。编解码器用于解码从 INI 文件读取的任何数据,以及对写入文件的任何数据进行编码。默认情况下,不使用编解码器,并且使用标准 INI 转义序列对非 ASCII 字符进行编码。

所以你应该用你想要的编解码器来调用它,例如

QSettings settings;
settings.setIniCodec("UTF-8");

请注意,您必须在创建 QSettings 对象之后和访问任何数据之前立即调用它

于 2011-11-08T09:06:21.960 回答