如何确定unicode字符的字体和布局信息

How can I determine font and layout information for a unicode character?

本文关键字:布局 信息 字体 何确定 unicode 字符      更新时间:2023-10-16

我想在应用程序中呈现Unicode字符,我大致知道如何使用freetype为标准拉丁字符呈现Unicode字符。然而,对于其他具有不同布局和形状的语言,我不知道如何从UTF-8编码字符串中的一组字符转换为:

  1. 选择合适的字体以显示字符

  2. 为字符(LTR、RTL、TTB)选择正确的布局

这些数据是否包含在unicode字符本身中(我不确定像web浏览器这样的应用程序如何处理文本)?

对于给定的Unicode字符,如何确定点1和点2?Freetype有一些很棒的文档,并谈到了使用不同的布局,但我不知道你会如何从角色本身提取所述信息。

我还快速浏览了Harfbuzz,但没有找到任何文档。有一个例子展示了如何设置和使用Harfbuzz来布局一些语言,Freetype渲染字形,但该例子明确地将布局、字体和语言信息传递给Harfbuzz。

当你事先不知道这些事情时,你会怎么做?

这是针对移动应用程序的,理想情况下使用的libs/解决方案将具有许可证。

Unicode字符编码点仅对字符进行编码它本身它没有给出关于要使用的字体的信息,也没有布局,事实上也没有其他任何东西。获取信息Unicode提供了许多文件,例如UnicodeData.txt,您可以下载并使用它。像对于字体,每个字体都应该提供一些排序,包括每个的宽度、高度和深度性格这些文件也可以用来确定字体支持的字符。