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

irlmq6kh  于 2021-07-05  发布在  Java
关注(0)|答案(3)|浏览(308)

我想写一个函数

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

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

getName(0);

将返回字符串“null”和

getName(33);

将返回字符串“感叹号”。
jdk里有没有关于这个的东西?

eivnm1vs

eivnm1vs1#

不,标准的jdk没有这些信息。它可以在各种方案中进行解码和编码,但在任何 Package 中包含所有名称都需要大量下载。
正如所指出的,专业词汇工具可能会有所帮助。当心。这是一个830MB的下载。

xfyts7mz

xfyts7mz2#

unicode标准的一部分是unicodedata-.txt文件(从unicode.org下载不起作用),其中包含名称(以及读取方向、tolowercase和touppercase等):

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

所以呢 0x21 被unicode标准称为感叹号。
这可以以某种形式隐藏在jre中的某个地方,因为它用于转换为小写和大写字符。

n3schb8v

n3schb8v3#

ashalynd提到的词汇工具java6.0utf-82009版本看起来有一个get unicode名称特性。然而,在幕后,它正在使用icu项目的icu4j。isu4j有一个可能有用的ucharacter.getname()函数。

相关问题