【问题标题】:Non ascii characters displayed in a wrong font以错误字体显示的非 ascii 字符
【发布时间】:2012-10-26 11:10:37
【问题描述】:

我正在尝试在我的新网站中使用“Nilland-SmallCaps”字体。问题是,虽然所有其他文本都正确显示,但我的语言的特定字符(š、č、ž(s、c、z 和 caron))以默认字体显示。我在字体编辑器中打开了 .ttf 文件,发现这些字符已定义,所以我不知道为什么它们不能正确显示。如果您对如何解决此问题有任何想法,请帮助我,因为我已经尝试了我想出的所有方法。

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

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

【问题讨论】:

    标签: html css fonts font-face truetype


    【解决方案1】:

    Nilland-Smallcaps 字体在很多方面都很奇怪。首先,它实际上不包含小型大写字母。但这里重要的是它没有正确编码。它不包含分配给与 Unicode 数字对应的位置的字形,除了一些字符,如 Ascii 范围。

    如果您使用DTL OTMaster Light 分析字体,您可以看到例如字母 š 放置正确,Unicode 编号 U+0161,但字母 ž 分配给 U+0014,这是完全错误的,因为这是一个控制字符位置。字母č在U+E054的位置,属于Private Use Area,只能在相关方协议下使用,浏览器不感兴趣。事实上,您可以通过使用字符引用  来欺骗(至少某些)浏览器以字体呈现 č,但这确实是一个可怕的组合。

    我建议您尝试寻找其他编码更正确的字体。

    【讨论】:

    • 我的雇主希望我使用这种特定的字体。我不是这方面的专家,但是否有可能以纠正这些问题的方式编辑字体文件?
    • 从技术上讲,可以编辑字体文件,但您需要字体作者的许可(您可以得到);只是作为免费字体并不意味着修改字体的权利。
    【解决方案2】:

    听起来好像字体在生成字体时没有打开自定义语言设置。请在此处查看修复:

    Font Face not working for custom language characters

    必须选择以下字体松鼠选项才能使用 要生成的正​​确语言字形:

    单击自定义子集单选按钮并选择以下 选项:

    字符编码 -Mac 罗马字符类型 -选中所有复选框 在本节中 语言 - 英语、法语或其他语言

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      相关资源
      最近更新 更多