Portál AbcLinuxu, 7. května 2025 09:51
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.