我想在应用程序中呈现 Unicode 字符,并且我大致了解如何使用 freetype 处理标准拉丁字符。但是,对于具有不同布局和形状的其他语言,我不确定如何从 UTF-8 编码字符串中获得的一组字符变为:
选择合适的字体来显示字符
为角色选择正确的布局(LTR、RTL、TTB)
这些数据是否包含在 unicode 字符本身中(我不确定 Web 浏览器之类的其他应用程序如何弄清楚如何呈现文本)?
对于给定的 Unicode 字符,如何确定第 1 点和第 2 点?Freetype 有一些很棒的文档,并且谈论了很多关于使用不同布局的内容,但我没有看到您将如何从角色本身中提取所述信息。
我还快速浏览了 Harfbuzz,但找不到任何文档。有一个示例显示如何设置和使用 Harfbuzz 来布局某些语言,使用 Freetype 渲染字形,但该示例明确将布局、字体和语言信息传递给 Harfbuzz。
当你事先不知道这些事情时,你会怎么做?
这适用于移动应用程序,理想情况下,使用的库/解决方案将具有许可许可证。