【发布时间】:2012-08-21 06:34:39
【问题描述】:
我现在已经搜索了很多,希望有人可以帮助我。我想获取 Java 中每种语言的 Unicode 块。到目前为止我发现的是:
- Character.UnicodeBlock.ARABIC; Character.UnicodeBlock.Cyrillic;
- Character.UnicodeBlock.LATIN_1_SUPPLEMENT; ....
但这还不够。我也想知道,德语、法语、俄语字母表中的哪些字母。我只能知道它们对应于拉丁文或西里尔文,而不是特定于语言的字母,如 this。
【问题讨论】:
-
我认为这是不可能的——语言的字符集没有那么明确。例如,“ç”是“façade”中使用的英文合法字符。 CJK 字符块(中文、日文和韩文)也很好地混合在一起,因为有很多重叠。
-
好吧,“ç”在英语中可能是一个合法字符,但我认为您在童年时并没有了解到英语字母表中有多个 A-Z 字符,或者?
-
字母仍然只是 A-Z,但有时 c 可能有尾音 (ç),e 可能有重音 (é) 等。如果你想进入更古老的英语,那么你也得到奇怪形式的字母,如“ſ”(long s)。德语、法语和英语都使用相同的拉丁字母:A-Z。你想怎么分区? (顺便说一句,德语字母 ß 实际上就是我刚才提到的“长 s”,后跟一个普通的 s:ſs => ß)
-
我不想说这些字符 (ç)(é) 不应该用英文显示。就像这些语言规则一样,您有一个规则,但每个规则也有例外。现在它与英文字母表相同,在LocaleData 中,您有标准和辅助 UnicodeSet,这正是我们正在谈论的内容。
-
是的,你是对的。这些只是奇怪的边缘情况,基本上不会出现,实际上可以在没有重音的情况下编写它们。很高兴我错了,您能够找到合适的答案!