在Java中,我能够确定某个特定字符是否是例如日语汉字使用Unicode.blockOf(字符)。我正在尝试为QChar做同样的事情,但找不到相关的功能来做到这一点。我想知道我是不是错过了,或者我必须自己动手,如果是的话 - 怎么样?
答案 0 :(得分: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);
here是Unicode块的列表
答案 1 :(得分:0)
我不知道是否有更好的Qt特定方法。如果没有,您可以尝试使用ICU而不是滚动自己的解决方案。
ICU既有“C / C ++”版本,也有Java版本。 ICU的Java版本实际上与i18n / l10n的一些Java标准库共享一个共同的祖先,所以C / C ++版本很容易让你弄明白。