用于获取字母同义词/类似字形的Java库

时间:2011-11-21 04:59:03

标签: java unicode glyph

我想知道是否有一个允许字符获取同义词的库?

类似的东西:

char c = getNextChar();
if (c == latin.H || c == cyrillic.H) {
    //...
}

1 个答案:

答案 0 :(得分:2)

所以,据我所知,你不需要字母的“同义词”;你想要字母具有相同的“字形”(形状)。

我不知道这样的库是否存在。但是,您可以通过使用您喜欢的字体渲染字符并检查字形“相同”来实现。

例如,您可以执行以下步骤:

  • 下载UniFont,最好是BDF form
  • 计算每个字符位图的校验和(例如MD5)
  • 根据校验和对字符进行分组。

我创建了一个small Python 2.7 test script(用于开发速度),执行上述步骤,产生类似(摘录)的内容:

Group 0041
        U+0041 LATIN CAPITAL LETTER A
        U+0391 GREEK CAPITAL LETTER ALPHA
        U+13AA CHEROKEE LETTER GO
Group 0042
        U+0042 LATIN CAPITAL LETTER B
        U+0392 GREEK CAPITAL LETTER BETA
        U+0412 CYRILLIC CAPITAL LETTER VE
        U+13F4 CHEROKEE LETTER YV

因人而异。