用于表示组合字符的 unicode 字形是啥?

Posted

技术标签:

【中文标题】用于表示组合字符的 unicode 字形是啥?【英文标题】:What's the unicode glyph used to indicate combining characters?用于表示组合字符的 unicode 字形是什么? 【发布时间】:2011-01-14 13:12:25 【问题描述】:

我的应用程序需要显示“孤立的”组合字符。我想使用与“官方” unicode 图表相同的格式,使用虚线圆圈占位符。参见,例如:

Combining Diacritical Marks (PDF)

快速浏览图表,我想出了 U+25CC "DOTTED CIRCLE"。看起来不错,但是这个字符的注释是:

注意这里的参考字形 字符故意大于 虚线圆字形用于 表示在此组合字符 标准;例如,参见 0300

这表明(我认为)U+25CC 不是正确的字符。 (或者,如果是的话,也许只是一个措辞不佳的注释。)

那么:如果“组合变音符号”上的虚线圆圈不是U+25CC,那么那个小鼻屎的正确代码是什么?

我试过了:

正在复制 PDF 中的文本并对其进行检查,但该副本在 PDF 中被禁用。 在 Gmail 中通过电子邮件将其发送给我自己,然后以 html 格式查看附件,但其中的附件被转换为 U+0024(“美元符号”)。这意味着要么转换失败,要么他们只是在 PDF 中玩一些字体渲染游戏。

[澄清] 我意识到 U+25CC 看起来不错(假设一个字体支持它),但听起来规范说这是错误的字符。许多 unicode 字符具有相似的字形,但从语义上讲是不同的字符。对于大多数字体,“拉丁大写字母 A”(U+0041) 和“希腊大写字母 Alpha”(U+0391) 看起来相同,但它们的语义不同且不可互换。

【问题讨论】:

大多数字体实际上都包含一个虚线圆形字形,如果它们覆盖的字母等需要一个字形。但是字形不必映射到代码点!许多字体确实将此类内部字形映射到 Unicode 的私有使用部分,这意味着它们可能因字体而异。因此,您也许可以使用低级字体访问来获得它。但也可能是不同的字体以不同的方式实现它,因此甚至可能没有一种方法可以检索适用于所有字体的字形。 25CC 可能是要走的路。 【参考方案1】:

我不认为有 是一个正式的占位符字符。我读那条笔记的方式,他们随意选择了U+25CC,纯粹是为了展示。然后,在the chart 中列出了“真正的”虚线圆圈,他们将其放大一点,以强调它在那里用作占位符。 (或者也许他们在其他图表中缩小了它;正如你所说,这个注释的措辞很糟糕。)

无论如何,我认为没有任何理由不使用U+25CC 作为你的占位符。

【讨论】:

【参考方案2】:

刚刚尝试过:创建一个空白的 .html 文件,复制文本,然后在 Firefox 中加载。按预期显示(虽然我真的没想到空格+组合字符能正确显示):

<html>
<body>
<font size="24pt">
&#x25CC;&#x0300;
&#x25CC;&#x0301;
&#x25CC;&#x0302;
&#x25CC;&#x0303;
<br/>
&#x0041;&#x0300;
&#x0041;&#x0301;
&#x0041;&#x0302;
&#x0041;&#x0303;
<br/>
&#x0020;&#x0300;
&#x0020;&#x0301;
&#x0020;&#x0302;
&#x0020;&#x0303;
</font>
</body>
</html>

【讨论】:

我对我原来的问题进行了澄清。我意识到 U+25CC 看起来是正确的,但根据规范,从语义上讲,它听起来不是正确的字符。

以上是关于用于表示组合字符的 unicode 字形是啥?的主要内容,如果未能解决你的问题,请参考以下文章

有没有看起来像“钥匙”图标的 Unicode 字形? [关闭]

字形在 Swift 中带有 ttf 文件

Unicode 字符如何映射到字体中的字形?

为啥没有包含所有 Unicode 字形的字体? [关闭]

Python 3.x 中字符串的内部表示是啥

JS - 字符编码 (ASCII,Unicode,UTF-8)