【发布时间】:2019-05-19 06:54:06
【问题描述】:
是否有可能将顶部带有矢量箭头的字母添加到字符串(在 Java 中),如下图所示? 用特殊的ASCII码什么的?
【问题讨论】:
-
明确一点,Java 不使用 ASCII。
标签: java string unicode char ascii
是否有可能将顶部带有矢量箭头的字母添加到字符串(在 Java 中),如下图所示? 用特殊的ASCII码什么的?
【问题讨论】:
标签: java string unicode char ascii
是的,您可以将它们保存为 char 或 String,因为 java 为每个 char 占用 2 个字节并支持 Unicode(UTF-16) char(从 java 9 开始,java 使用紧凑字符串实现,这有助于 java 识别字符类型为 ASCII 或 UNICODE,因此 java 为每个字符占用 1 或 2 个字节)。
此外,您可以将世界上的任何字符存储在 java 字符/字符串中,例如中文、日文等,因为它支持 UTF-16。
【讨论】:
您想使用'COMBINING RIGHT ARROW ABOVE' (U+20D7) 代码点:
System.out.println("a\u20D7");
它应该显示为⃗,但某些字体可能无法正确呈现。
组合字符的概念描述in the wiki:
在数字排版中,组合字符是旨在修改其他字符的字符。拉丁文中最常见的组合字符是组合变音符号(包括组合重音符号)。
Unicode 还包含许多预组合字符,因此在许多情况下,可以根据用户或应用程序的选择同时使用组合变音符号和预组合字符。这导致需要在比较两个 Unicode 字符串之前执行 Unicode 规范化,并仔细设计编码转换器,以正确地将 Unicode 中表示字符的所有有效方式映射到传统编码,以避免数据丢失。
在 Unicode 中,欧洲语言和国际音标组合变音符号的主要块是 U+0300–U+036F。组合变音符号也出现在许多其他 Unicode 字符块中。在 Unicode 中,始终在主要字符之后添加变音符号(与一些较旧的组合字符集如 ANSEL 相比),因此可以为同一个字符添加多个变音符号,尽管截至 2010 年,很少有应用程序支持正确呈现此类组合。
【讨论】: