文字のユニコードブロック、特にQT QCharを決定するにはどうすればよいですか?
質問
Javaでは、特定のキャラクターがunicode.blockof(文字)を使用する日本の漢字であるかどうかを判断することができました。私はQCharのために同じことをしようとしていますが、これを行うための関連する関数を見つけることができませんでした。私はそれを見逃したのか、それとも自分のものを転がさなければならないのだろうか、そうだと思っているのだろうか?
解決
がある 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);
と ここ ユニコードブロックのリストです
他のヒント
より良いQT固有のアプローチがあるかどうかはわかりません。ない場合は、使用してみてください ICU 独自のソリューションを転がすのではなく。
ICUには、「C/C ++」バージョンとJavaバージョンの両方があります。 ICUのJavaバージョンは、実際にはI18N/L10NのJava標準ライブラリの一部と共通の祖先を共有しているため、C/C ++バージョンが簡単に把握できることを願っています。
所属していません StackOverflow