3

Javaでは、Unicode.blockOf(Character)を使用して、特定の文字がたとえば日本の漢字であるかどうかを判別できました。QCharに対して同じことをしようとしていますが、これを行うための関連する関数が見つかりませんでした。私はそれを逃しただけなのか、それとも自分で転がさなければならないのか、もしそうなら、どうやって?

4

2 に答える 2

4

QChar :: Categoryがありますが、必要なものがすべて揃っているわけではありません。

charが特定の範囲内にあるかどうかを確認するには、次のような関数を記述できます。

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

次に、次のように使用できます。

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

もちろん、さらに進んでそれをより抽象化し、範囲を列挙することもできます。

inRange(c, Range::Hiragana);

そしてここにUnicodeブロックのリストがあります

于 2010-12-12T21:01:59.607 に答える
0

より良いQt固有のアプローチがあるかどうかはわかりません。そうでない場合は、独自のソリューションを展開するのではなく、ICUを使用してみることができます。

ICUには、「C /C++」バージョンとJavaバージョンの両方があります。ICUのJavaバージョンは、実際にはi18n / l10n用のJava標準ライブラリのいくつかと共通の祖先を共有しているため、C /C++バージョンが簡単に理解できることを願っています。

于 2010-12-12T20:37:05.827 に答える