在Java中,我能够确定一个特定字符是否是使用unicode.blockof(字符)的日本汉字。我正在尝试为QCHAR做同样的事情,但找不到相关功能来执行此操作。我想知道我是否只是错过了它,还是必须自己滚动,如果是这样 - 如何?

有帮助吗?

解决方案

QCHAR ::类别 但是,它不能提供您需要的一切。

要检查字符是否在某些范围内,您可以编写这样的函数:

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块的列表

其他提示

我不知道是否有更好的QT特定方法。如果没有,您可以尝试使用 ICU 而不是滚动自己的解决方案。

ICU具有“ C/C ++”版本和Java版本。 ICU的Java版本实际上与I18N/L10N的一些Java标准库共享一个共同的祖先,因此C/C ++版本希望您可以轻松弄清楚。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top