我正在使用QSettings
将一些设置存储在INI文件中。但是,我的程序不是英文,因此某些设置包含Unicode字符串。似乎Qt写的INI文件不是在utf8或utf16中,而是在其他一些编码中,字符串“Приветмир!” (rus。“Hello world!”)看起来像这样:
WindowTitle=\x41f\x440\x438\x432\x435\x442 \x43c\x438\x440!
我想手动编辑设置文件,但我不能像这样使用它。有没有办法强制Qt以Unicode保存?
答案 0 :(得分:16)
检查QSettings
setIniCodec
功能
设置访问INI文件的编解码器(包括Unix上的.conf文件) 编解码器。编解码器用于解码从中读取的任何数据 INI文件,用于编码写入文件的任何数据。 默认情况下,不使用编解码器,并且编码非ASCII字符 使用标准的INI转义序列。
所以你应该用你想要的编解码器来调用它,例如
QSettings settings;
settings.setIniCodec("UTF-8");
请注意,必须在创建QSettings对象之后和访问任何数据之前立即调用。