我需要解决与此相反的问题。我有带有非 ascii 符号的 QString。
例如:
Schöne Grüße
如何获取 UTF8 情况下的字符串长度(以字节为单位)?应该是 15。
我尝试过转换为ByteArray
, to Latin1
,ASCII
但长度始终相同。
您需要使用 ::toUtf8() 并将其附加到 QByteArray。然后您可以使用 .size() 获取长度。
QString s = "Schöne Grüße";
QByteArray bytes = s.toUtf8();
int length = bytes.size(); //Number of bytes
http://clc-wiki.net/wiki/C_standard_library:string.h:strlen
C 标准 API strlen() 返回空终止字符串中的字节数,不包括空终止符。