Получить длину QString в байтах (не символах)

мне нужно решить проблему напротив этот. У меня есть QString с символами, отличными от ascii.
Например:
Schöne Grüße

как получить длину строки в байтах для случая UTF8? Она должна быть 15.
Я пробовал преобразование в ByteArray, to Latin1, ASCII но длина всегда одна и та же.

2 ответов


вам нужно использовать :: toUtf8() и добавить его в QByteArray. Затем вы можете получить длину, используя .размер.)(

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


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

стандартный API c strlen () возвращает количество байтов в нулевой завершенной строке, не включая нулевой Терминатор.