磁盘上的unicode字符在哪里?是什么';映射过程是什么?

磁盘上的unicode字符在哪里?是什么';映射过程是什么?,unicode,encoding,fonts,character,utf,Unicode,Encoding,Fonts,Character,Utf,有几个与unicode相关的问题让我困惑了一段时间 出于以下原因,我认为unicode字符存在于磁盘上 在终端中执行echo“\u6211”,它将打印unicode代码点U+6211对应的字形 有一个UCD(unicode字符数据库)的概念,我们可以下载它的最新版本 在升级macOS版本之前,某些新版本的unicode字符(如最新的emojis)无法在我的mac上显示 因此,如果磁盘上确实存在unicode字符,则: 它在哪里 如何升级 将unicode代码点映射到glyph的过程是什么 如果我

有几个与unicode相关的问题让我困惑了一段时间

出于以下原因,我认为unicode字符存在于磁盘上

  • 在终端中执行
    echo“\u6211”
    ,它将打印unicode代码点U+6211对应的字形
  • 有一个UCD(unicode字符数据库)的概念,我们可以下载它的最新版本
  • 在升级macOS版本之前,某些新版本的unicode字符(如最新的emojis)无法在我的mac上显示
  • 因此,如果磁盘上确实存在unicode字符,则:

  • 它在哪里
  • 如何升级
  • 将unicode代码点映射到glyph的过程是什么
  • 如果我使用特定字体,那么将unicode代码点映射到字形的过程是什么 如果不是,那么将unicode代码点映射到glyph的过程是什么


    如果有人能解释这些问题,我们将不胜感激。

    一般来说,使用文本的操作系统组件使用Unicode字符集。特别是,字体文件使用Unicode字符集。但是,并非所有字体文件都支持所有Unicode代码点

    当一种字体不支持某个代码点时,系统可能会退回到另一种字体。网络浏览器尤其如此。但最终,如果不支持代码点,则渲染未填充的矩形。(没有字符,因为它不是字符。事实上,如果您能够将其复制并粘贴为文本,则它应该是无法渲染的原始字符。)

    在web开发中,web页面可以提供或给出字体的位置,这些字体应该适用于它所使用的代码点

    其他程序通常使用操作系统的渲染工具,因此使用操作系统提供的字体。如何在操作系统中安装字体不是编程问题(除非您在程序的安装程序中包含字体)。有关这方面的更多信息,您可以查看该问题是否适合Stack Exchange站点

    在终端中执行
    echo“\u6211”
    ,它将打印unicode代码点U+6211对应的字形

    这就是bash中的echo-e

    › echo "\u6211"
    \u6211
    › echo -e "\u6211"
    我
    
    它在哪里

    在字体文件中

    在升级macOS版本之前,某些新版本的unicode字符(如最新的emojis)无法在我的mac上显示。 如何升级

    安装/升级带有表情符号的合适字体就足够了。我没有macOS,所以无法验证

    我使用“Noto Color表情符号”版本2.011/20180424,效果很好

    将unicode代码点映射到glyph的过程是什么

    该应用程序(例如文本编辑器)为字体呈现子系统(macOS上的Quartz™提供Unicode文本和字体名称。字体渲染器分析文本的代码点,并确定这是简单文本(例如,拉丁语、汉语、独立表情符号)还是复杂文本(例如,带有多个标记的拉丁语、泰语、阿拉伯语、带有零宽度连接符的表情符号)。渲染器会在字体文件中找到相应的。如果文件没有所需的glyph,则渲染器或使用配置为较差的替换(白框、黑色问号等)。然后,这些轮廓将被合成一个复杂的字形和断线。最后,字体渲染器将结果交给显示系统

    除了成形,这与Unicode或编码几乎没有关系。字体呈现在Unicode出现之前就已经使用这种方式,当然字体文件和呈现在30年前要简单得多。只有当有人想从应用程序加载或保存文本时,编码才起作用

    小结:调查

    • Truetype/Opentype字体编辑软件,以便您可以查看文件中包含的内容
    • 字体渲染器,在Linux上查看pango和freetype库