Reputation: 399
I need to solve the problem opposite to this one. I have QString with non-ascii symbols.
For example:
Schöne Grüße
How to get the length of the string in bytes for UTF8 case? It should be 15.
I have tried conversion to ByteArray
, to Latin1
, ASCII
but length is always the same.
Upvotes: 6
Views: 10742
Reputation: 9
http://clc-wiki.net/wiki/C_standard_library:string.h:strlen
The C Standard API strlen() returns the number of bytes in a null terminated string, not including the null terminator.
Upvotes: -3
Reputation: 6820
You need to use ::toUtf8() and append it to a QByteArray. Then you can get the length using .size().
QString s = "Schöne Grüße";
QByteArray bytes = s.toUtf8();
int length = bytes.size(); //Number of bytes
Upvotes: 19