2012-11-06 51 views
2

我正在尝试在我的新网站中使用'Nilland-SmallCaps'字体。问题是,当所有其他文本显示正确时,我的语言(š,č,ž(s,c,z with caron))的特定字符以默认字体显示。我在一个字体编辑器中打开了.ttf文件,我发现这些字符已被定义,所以我不知道为什么它们不能正确显示。如果你对如何解决这个问题有一个想法,请帮助我,因为我尝试了所有我想出的东西。非ASCII字符以错误的字体显示

@font-face { 
font-family: 'Nilland-SmallCaps'; 
src: url('Nilland-SmallCaps.ttf')format('truetype'); 
} 

我使用这个字体文件:Nilland-SmallCaps

回答

2

Nilland-Smallcaps字体在很多方面都很奇怪。它实际上并不包含小型大写字母,首先。但重要的是它没有正确编码。它不包含指定给与Unicode编号相对应的位置的字形,但某些字符(如Ascii范围)除外。

如果使用DTL OTMaster Light分析字体,则可以看到例如字母š被正确放置,Unicode编号U + 0161,但字母ž被分配给U + 0014,这是错误的,因为这是一个控制字符位置。字母“ç”位于U + E054位置,位于私人使用区域,该区域只能由相关方协议使用,浏览器不感兴趣。事实上,你可以通过使用字符引用来愚弄至少一些浏览器来渲染字体,但这确实是一个令人生厌的混乱。

我建议你试着找一些其他的,更正确的编码字体。

+0

我的雇主希望我使用这种特定的字体。我不是这方面的专家,但是能否以纠正这些问题的方式编辑字体文件? – JanL

+0

从技术上讲,可以编辑字体文件,但是你需要字体作者的许可(你可以得到)。只是一个免费的字体并不意味着修改字体的权利。 –

1

听起来就像是字体面没有自定义语言设置打开生成的字体面当。请在这里看到一个修复:

Font Face not working for custom language characters

下面的字体松鼠选项必须按顺序选择要生成的 正确的语言字形:

单击自定义子集无线电布通和选择以下 选项:

字符编码-Mac罗马字符类型 - 选中本节中的所有复选框 语言 - 英文,法文或者W HATEVER LANGUAGE