【问题标题】:QSettings doesn't handle unicode wellQSettings 不能很好地处理 unicode
【发布时间】:2011-12-24 05:49:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: qt unicode qsettings


    【解决方案1】:

    查看QSettingssetIniCodec函数

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

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

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

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

    【讨论】:

    • 完美运行,我删除了 QJson,因此减少了一个依赖 ))
    猜你喜欢
    • 1970-01-01
    • 2012-06-01
    • 2017-03-29
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    相关资源
    最近更新 更多