【问题标题】:Get QString length in bytes (not characters)以字节为单位获取 QString 长度(不是字符)
【发布时间】:2013-08-15 17:09:08
【问题描述】:

我需要解决与this one相反的问题。我有带有非 ascii 符号的 QString。
例如:
Schöne Grüße

如何获取 UTF8 情况下的字符串长度(以字节为单位)?应该是 15。
我尝试转换为ByteArrayLatin1ASCII,但长度始终相同。

【问题讨论】:

    标签: qt text size codec qstring


    【解决方案1】:

    您需要使用 ::toUtf8() 并将其附加到 QByteArray。然后你可以使用 .size() 获取长度。

    QString s = "Schöne Grüße";
    QByteArray bytes = s.toUtf8();
    int length = bytes.size(); //Number of bytes
    

    http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/qbytearray.html#size

    【讨论】:

    • toUtf8 没有参数!!
    • 正确,它没有。
    【解决方案2】:

    http://clc-wiki.net/wiki/C_standard_library:string.h:strlen

    C 标准 API strlen() 返回空终止字符串中的字节数,不包括空终止符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-07
      • 2012-04-09
      • 2013-06-28
      • 1970-01-01
      • 2011-09-26
      • 2015-03-05
      • 1970-01-01
      • 2014-08-09
      相关资源
      最近更新 更多