Portál AbcLinuxu, 2. listopadu 2025 19:17
QString diakritika = QString::fromUtf8("Ůíííííí");
QString normalizovany = diakritika.normalized(QString::NormalizationForm_KD);
QBuffer vystup;
vystu.open(QIODevice::WriteOnly);
foreach (const QChar &char, normalizovany) {
if (ch < 0x80) {
vystup.putChar(ch.toAscii());
}
}
vystup.close();
QString bezDiakritiky = vystup.data();
QString doIt(const QString& input)
{
QString norm = input.normalized(QString::NormalizationForm_KD);
QString output;
output.reserve(input.length());
foreach (const QChar& c, norm) {
if (c < 0x80)
output.append(c);
}
return output;
}
Druhá věc je, že ta podmínka (c < 0x80) může odstranit i jiné užitečné znaky.
QString c1;
foreach (const QChar& c, input)
{
c1 = c.decomposition ();
if (c1.isEmpty ())
{
output.append (c);
}
else
{
output.append (c1.at (0));
}
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.