【问题标题】:std::string with different encoding to QString与 QString 具有不同编码的 std::string
【发布时间】:2015-05-17 12:55:48
【问题描述】:

有没有办法检测std::string编码?

我的问题:我有一个以不同编码提供数据的外部 Web 服务。此外,我有一个库女巫解析该数据并将其存储在 std::string 中。比我想在 Qt GUI 中显示数据。问题是 std::string 可以有不同的编码。一些字符串可以使用QString::fromAscii()进行转换,一些QString::fromUtf8()

【问题讨论】:

    标签: c++ string qt4


    【解决方案1】:

    我没有研究过,但我过去确实使用过一些 Qt3.3。

    ASCII vs Unicode + UTF-8

    Utf8 是 8 位,ascii 是 7 位。我想您可以尝试查看字符串数组的值

    http://doc.qt.digia.com/3.3/qstring.html#asciihttp://doc.qt.digia.com/3.3/qstring.html#utf8 似乎 ascii 返回字符串的 8 位 ASCII 表示,但我仍然认为它应该具有从 0 到 127 或类似的值。您必须比较字符串中的更多字符。

    【讨论】:

    • void print_values(const char* in_string) { printf("{"); for (int i= 0; in_string[i]!= 0; i++) { printf("%d", in_string[i]); if (in_string[i+1] != 0) printf(", "); } printf("}\n"); } int main(int argc, char** argv) { QString test("iNyuu"); const char* ascii = test.ascii(); const char* utf8 = test.utf8(); printf("ascii = "); print_values(ascii); printf("utf8 = "); print_values(utf8); return 0; } // 没关系,我看到“QCString utf8 () const”(utf 在这里不返回 char 数组 & 不确定 Qt4 // 你使用了“运算符 std::string ( ) const"? // 用 std::string 尝试类似的东西
    猜你喜欢
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2013-08-21
    • 2011-05-19
    • 1970-01-01
    相关资源
    最近更新 更多