Frage

In Java, ich war in der Lage zu bestimmen, ob ein bestimmtes Zeichen zum Beispiel war eine japanische Kanji mit Unicode.blockOf (Rolle). Ich versuche, das gleiche für eine QChar zu tun, aber konnte keine relevante Funktion, dies zu tun finden. Ich frage mich, ob ich es einfach verpasst haben, oder muss ich auf meine eigene Rolle, und wenn ja - wie

War es hilfreich?

Lösung

Es gibt QChar :: Kategorie aber es nicht schaffen, Alles, was du brauchst.

Für die Überprüfung, ob ein Zeichen in bestimmtem Bereich ist, könnten Sie eine Funktion wie diese schreiben:

bool inRange(QChar c, ushort b, ushort e) {
    return (c.unicode() >= b) && (c.unicode() <= e);
}

Sie können es dann wie folgt verwenden:

inRange(c, 0x3040, 0x309F); // Hiragana?

Natürlich könnte man noch weiter gehen und macht es abstrakt und aufzuzählen, die Bereiche:

inRange(c, Range::Hiragana);

Und hier ist die Liste der Unicode-Blocks

Andere Tipps

Ich weiß nicht, ob es eine bessere Qt spezifischen Ansatz ist. Wenn es nicht könnten Sie versuchen, mit ICU anstatt Ihre eigene Lösung rollen.

hat ICU sowohl eine "C / C ++" Version und eine Java-Version. Die Java-Version der ICU teilt tatsächlich einen gemeinsamen Vorfahren mit einigen der Java-Standardbibliotheken für i18n / l10n, so dass die C / C ++ Version hoffentlich einfach für Sie herauszufinden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top