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 回答