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

Unicode字符如何映射到字体中的字形?,unicode,fonts,Unicode,Fonts,我想知道,Unicode中的每个字符都有一个代码点;字体中字符的类似术语是什么 我从未理解解码文件需要映射到字体(或字体,通过一些现代字体替换技术)的过程 例如,当一个文本编辑器根据其字符编码对一个文件进行解码时,假设有希腊字母α(U+03B1)。此应用程序选择字体中特定字形的确切过程是什么?大多数应用程序都有首选字体。假设是信使。(像心脏这样罕见的Unicode字符会发生什么情况♥ (U+2665),这不是默认字体?应用程序如何知道字体不包含该字符?) 字体是否包含有关其符号的元信息 如果两种

我想知道,Unicode中的每个字符都有一个代码点;字体中字符的类似术语是什么

我从未理解解码文件需要映射到字体(或字体,通过一些现代字体替换技术)的过程

例如,当一个文本编辑器根据其字符编码对一个文件进行解码时,假设有希腊字母α(U+03B1)。此应用程序选择字体中特定字形的确切过程是什么?大多数应用程序都有首选字体。假设是信使。(像心脏这样罕见的Unicode字符会发生什么情况♥ (U+2665),这不是默认字体?应用程序如何知道字体不包含该字符?)

字体是否包含有关其符号的元信息

如果两种字体都有alpha符号,它们是否必须共享相同的“代码点”?还是取决于字体类型,如Type1、Type3、TrueType、OpenType


感谢您的指点或参考。

TrueType字体由许多部分组成,对于这个问题,最重要的是一个“字形”表和一个用于将字符映射到这些字形的表(“cmap”)

长话短说,操作系统使用“cmap”表将字符转换为字形索引,用默认字形替换没有匹配项的任何字符。不幸的是,这些表中有多个版本的字体文件规范(更不用说不同类型的字体)和相同映射的不同字符编码,因此进行映射的实际过程,以及高效地进行映射以便快速绘制文本的过程,最终变得极其复杂

“代码点”完全独立于字符、编码和字体。特定的代码点是通用的,但有许多编码(UTF-8、UTF-16等),它将映射到不同字体中的不同glyph索引

苹果的开发者文档中有一个关于TrueType字体细节的非常好的部分:

具体而言:

字形表:

字符映射:


我还推荐一个名为的应用程序,它提供了很多关于字体的有趣信息。具体查看工具/Unicode摘要、字体/字体分析实用程序和字体/字体信息,从中可以将整个字形映射表提取到剪贴板。

给定语言中的字符的代码点是否标准化?比如某天在X国召开委员会会议并决定,让我们使用代码点a、b、c、d。。。为了我们的角色的东西?然后提交给某个ISO?@v.oddou是的,确切地说,是委员会,你可以看到不同语言的各种字符集在这里的布局方式:以及ISO之间的关系: