6

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

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

4

2 回答 2

18

您需要使用 ::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

于 2013-08-15T17:17:10.907 回答
-3

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

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

于 2014-01-02T23:42:22.033 回答