Существует QChar :: Category , однако она не обеспечивает все, что вам нужно.
Чтобы проверить, находится ли символ в определенном диапазоне, вы можете написать такую функцию:
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