【发布时间】:2013-08-15 17:09:08
【问题描述】:
我需要解决与this one相反的问题。我有带有非 ascii 符号的 QString。
例如:Schöne Grüße
如何获取 UTF8 情况下的字符串长度(以字节为单位)?应该是 15。
我尝试转换为ByteArray、Latin1、ASCII,但长度始终相同。
【问题讨论】:
标签: qt text size codec qstring
我需要解决与this one相反的问题。我有带有非 ascii 符号的 QString。
例如:Schöne Grüße
如何获取 UTF8 情况下的字符串长度(以字节为单位)?应该是 15。
我尝试转换为ByteArray、Latin1、ASCII,但长度始终相同。
【问题讨论】:
标签: qt text size codec qstring
您需要使用 ::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() 返回空终止字符串中的字节数,不包括空终止符。
【讨论】: