是否有“未找到字形”字符?

时间:2012-12-05 19:03:05

标签: unicode fonts special-characters glyph

假设我们有一个包含无法显示的Unicode字符的文本,因为我们的字体没有相应的字形。通常,显示占位符,例如,一个矩形块东西(见截图)。

是否存在可靠生成此字形的“字形未找到”字符?我想在UI中编写类似"If the following text contains <insert character here> then you need another font..."的内容。

顺便说一句,我不是在谈论 (replacement character)。当无法从数据流中正确解码Unicode字符时,将显示此字符。它不一定产生相同的字形:

enter image description here

8 个答案:

答案 0 :(得分:13)

来自Unicode规范:

U+25A1□WHITE SQUARE

  • 可用于表示缺少的表意文字

  • U+20DE $⃞结合封闭广场

答案 1 :(得分:12)

不,没有“找不到字形”字符。不同的程序使用不同的图形演示空的窄矩形是常见的渲染,但不是唯一的渲染。它也可以是一个带有问号的矩形或带有十六进制字符的代码编号。

所以最好是例如显示角色的小图像以及角色本身,以便读者可以比较它们。

答案 2 :(得分:3)

字形引擎和字体指定字形未找到的字符;它没有固定的特征。

答案 3 :(得分:2)

使用像U + 10FFFF这样的非字符(在Unicode空间的最末端),在任何理智字体的cmap表中都找不到99.99%。至少没有已知的Windows系统字体映射到字形的非字符,也不太可能是任何Linux / Mac系统字体。即使是包含所有包含Last Resort字体(http://www.unicode.org/policies/lastresortfont_eula.html)也不会映射它。因此,虽然在Unicode中定义的官方“未找到字形”字符将映射到.​​notdef字形,但实际上保证上述非字符显示该字形,无论字形设计是否为该特定字体。 .notdef字形(OpenType中的字形id 0)可能是一个简单的空心矩形(标准),带有x的框,带有问号的框,偶尔会出现空白(这是不好的做法),有时像螺旋一样奇怪的事情(在Palatino Linotype中)

答案 4 :(得分:2)

另外,(据我所知)日语使用GETAMARK〓U+ 3013

CJK Symbols and Punctuation

答案 5 :(得分:1)

Unicode使用以下术语:

  • 替换字形
  • 缺少字形
  • 可解释但不可兑现的角色

Unicode标准版(10.0)没有定义它们的外观,但它在第5.3章[PDF]中建议实现显示

  

[...]独特的字形,可以提供其类型的一般指示[...]

将它们与“未分配的代码点”区分开来。他们给出了一些例子:

  

Unicode glossary entry says

  

它通常显示为开放或黑色矩形。

tl; dr:没有标准化的外观/字形,这取决于实现。为了帮助用户,实现可以显示字形,指示无法显示的字符类型。

答案 6 :(得分:0)

找不到字形的3个可能字符。

签入Microsoft规范,主题 .notdef字形的形状https://www.microsoft.com/typography/otspec160/recom.htm

答案 7 :(得分:0)

有一个notdef字符,表示找不到该字形。但它没有字符代码。您可以使用控制字符的字符插入notdef字符(例如“”,U + 0002)

相关问题