gpt4 book ai didi

qt - Qt中Utf-32字符的长度

转载 作者:行者123 更新时间:2023-12-04 20:35:28 30 4
gpt4 key购买 nike

我正在使用 Qt5。我有一个 QString 包含一个长度超过 16 位的字符 U"\x1D4CC"(𝓌)。即使这只是一个字符,Qt 也会返回这个字符串的大小为 2。有没有办法显示 QString 有多少个实际字符,假设可以有 32 个字符?

最佳答案

代码值大于 65535 的 Unicode 字符使用代理对存储,即两个连续的 QChars . QString::length返回QChar的数量在这个字符串中,它可能与字素(真实字符)的数量不同。

要计算字素数,您可以使用 QTextBoundaryFinder类(class)。

QString str = "𝓌";
QTextBoundaryFinder finder(QTextBoundaryFinder::Grapheme, str);
int count = 0;
while (finder.toNextBoundary() != -1)
++count;
qDebug() << count;

或者您可以将字符串转换为 UCS-4/UTF-32 表示并计算 32 位字符的数量。
QVector<uint> ucs4 = str.toUcs4();
qDebug() << ucs4.size();

关于qt - Qt中Utf-32字符的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36622981/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com