我想写一个函数
String getName(int codePoint) {
// ????
}
将返回给定代码点所代表的字符的标准名称。例如
getName(0);
将返回字符串“NULL”和
getName(33);
将返回字符串“EXCLAMATION POINT”。
JDK中有什么内容吗?
答案 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的负载。