首页 > 解决方案 > 字母顶部的矢量箭头作为 char 或 String

问题描述

是否有可能将顶部带有矢量箭头的字母添加到字符串(在 Java 中),如下图所示?用特殊的ASCII码还是什么?

在此处输入图像描述

标签: javastringunicodecharascii

解决方案


你想使用'COMBINING RIGHT ABROW ABOVE' (U+20D7)代码点:

System.out.println("a\u20D7");

它应该显示为 a⃗ 但某些字体可能无法正确呈现。

wiki中描述了组合字符的概念:

在数字排版中,组合字符是旨在修改其他字符的字符。拉丁文中最常见的组合字符是组合变音符号(包括组合重音符号)。

Unicode 还包含许多预组合字符,因此在许多情况下,可以根据用户或应用程序的选择同时使用组合变音符号和预组合字符。这导致需要在比较两个 Unicode 字符串之前执行 Unicode 规范化,并仔细设计编码转换器,以正确地将 Unicode 中表示字符的所有有效方式映射到传统编码,以避免数据丢失。

在 Unicode 中,将欧洲语言的变音符号与国际音标组合的主要块是 U+0300–U+036F。组合变音符号也出现在许多其他 Unicode 字符块中。在 Unicode 中,始终在主要字符之后添加变音符号(与一些较旧的组合字符集如 ANSEL 相比),因此可以为同一个字符添加多个变音符号,尽管截至 2010 年,很少有应用程序支持正确呈现此类组合。


推荐阅读