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

时间:2014-04-10 17:21:59

标签: c++ unicode freetype harfbuzz

我想在应用程序中呈现Unicode字符,我对如何使用freetype的标准拉丁字符做了大致的了解。但是对于具有不同布局和形状的其他语言,我不确定如何从一组字符中获取UTF-8编码的字符串:

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

  2. 为角色选择正确的布局(LTR,RTL,TTB)

  3. 这些数据是否包含在unicode字符本身中(我不确定像Web浏览器这样的应用程序会如何弄清楚如何呈现文本)?

    对于给定的Unicode字符,我如何确定第1点和第2点? Freetype有一些很好的文档和很多关于使用不同布局的说明,但是我没有看到你如何从字符本身中提取所述信息。

    我还快速浏览了一下Harfbuzz,但无法找到任何文档。这里有一个浮动示例,展示了如何设置和使用Harfbuzz来布局一些使用Freetype呈现字形的语言,但是示例明确地将布局,字体和语言信息传递给Harfbuzz。

    如果你事先不知道这些事情,你会怎么做?

    这适用于移动应用程序,理想情况下,所使用的库/解决方案将具有许可许可。

1 个答案:

答案 0 :(得分:2)

Unicode字符代码点仅对字符进行编码 本身;它没有提供有关使用字体的信息, 既不是布局,也不是​​其他任何东西。获取信息 关于布局等,Unicode提供了许多文件, 例如UnicodeData.txt,您可以下载和使用它。如 对于字体,每种字体应提供一些描述符文件 排序,包括每个的宽度,高度和深度 字符;这些文件也可用于确定whch 字体支持的字符。