【发布时间】:2020-05-01 20:31:46
【问题描述】:
我正在解析一个 TTF 文件。 有一条平台 ID 为 1、编码 ID 为 29、语言 ID 为 25 的名称记录。
我从Microsoft 和Apple 都找到了引用,它们将这种编码称为“斯拉夫”。
那么按照通常的约定,您会期望编码称为 MacSlavic,但不存在这样的编码。
Unicode.org lacks a record of this encoding also.
给定平台 ID 和编码 ID,有没有办法获得正确的字符集/编码来解码字体名称?
对于所有其他整数 ID,此问题的一般解决方案是什么?
编辑:我深入研究以获得实际的原始数据,但由于它都是低 ASCII 码,因此对确定编码没有帮助。但是它可能有助于识别语言,从而缩小潜在编码的范围?
57 73 7a 79 73 74 6b 69 65 20 63 65 63 68 79 20 Wszystkie cechy
74 79 70 6f 67 72 61 66 69 63 7a 6e 65 typograficzne
【问题讨论】:
-
名称记录将编码存储为三元组:语言 ID 是什么?至于如何获得正确的字符集:此类信息的最佳来源是查看现有技术,例如 github.com/foliojs/fontkit/blob/… - 此外,值得在 typerdrawers.com 上询问 OpenType 特定问题,因为字体工程就是这样一个小众话题,在所有字体大牌都挂着的地方提问更有可能让你很快得到一个好的答案。
-
@Mike'Pomax'Kamermans 语言 ID 为 25,波兰语。我想这与 29 可能是 MacCentralEuropean 一致,如果我可以相信 JS 实现......虽然它似乎对某些事情的映射略有偏差,比如 MacJapanese 映射到 Shift_JIS 即使 MacJapanese 的文档说它是一个超集。 :(
-
不应该需要语言 ID 来确定字符串中的字符。
标签: fonts character-encoding opentype