Получить длину 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://clc-wiki.net/wiki/C_standard_library:string.h:strlen
стандартный API c strlen () возвращает количество байтов в нулевой завершенной строке, не включая нулевой Терминатор.