如何编写Java函数来返回Unicode点的标准名称?

时间:2009-11-01 14:09:31

标签: java unicode character-encoding

我想写一个函数

String getName(int codePoint) {
    // ????
}

将返回给定代码点所代表的字符的标准名称。例如

getName(0);

将返回字符串“NULL”和

getName(33);

将返回字符串“EXCLAMATION POINT”。

JDK中有什么内容吗?

3 个答案:

答案 0 :(得分:2)

Ashalynd提到的Lexical Tools Java 6.0, UTF-8 , 2009 Release看起来有Get Unicode Name功能。然而,在幕后,它正在使用来自ICU Project的ICU4J。 ISU4J具有可能有用的UCharacter.getName()功能。

答案 1 :(得分:2)

部分unicode standard是一个文件UnicodeData-<Version>.txt(从unicode.org下载不起作用),其中包含名称(和阅读方向,toLowerCase和toUpperCase等):

0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;

所以 0x21 被unicode标准称为 EXCLAMATION MARK

这可能会以某种形式隐藏在JRE中的某个位置,因为它用于转换为小写和大写字符。

答案 2 :(得分:0)

不,标准JDK没有附带该信息。它可以在各种方案中进行解码和编码,但包含任何包装中的所有名称都需要大量下载。

正如所指出的,The Specialist Lexical Tools可能有所帮助。谨防。这是一个830 Mb的负载。