特殊字符“ű”和“ő”显示嵌入字体系列的问题

Special characters 'ű' and 'ő' display problems with embedded font family

我目前正在构建一个多语言网站并使用名为 'Exo' 的自定义字体。该字体系列包含来自匈牙利字母表的特殊字符“ű”和“ő”。我在网站中嵌入了 'Exo' 字体,但遗憾的是这些字符无法正确显示。其余文本使用嵌入的 'Exo' 字体显示,但这些字符使用默认字体系列显示。

这是我使用的字符编码:

<!DOCTYPE html> <html lang="hu"> <head> <meta charset=utf-8>

可能是什么问题?

这些字符在我下载字体系列的 http://www.fontsquirrel.com/fonts/exo?q%5Bterm%5D=exo&q%5Bsearch_check%5D=Y 上正确显示。

非常感谢任何帮助!

您的字体已正确加载,因为您看到的都是拉丁字形。但是您使用的字体不包含匈牙利语子集。这意味着字体中不存在这些特殊的匈牙利字形。 css 字体堆栈将显示缺失字形的后备字体。

排序答案:您需要做的是确保您使用的 Exo 字体版本包含您需要的所有子集。

您可以从 FontSquirrel 下载新的(完整字形集)OTF,并像以前一样使用 Webfont 生成器创建新的 Webfonts。但是现在确保你的子集设置正确......

FontSquirrel 具有细粒度的子集控件。这意味着您只需要包含所需的语言支持(子集)。这样加载时间将保持在最低限度。

Google 委托设计和重新设计 Exo 字体系列。他们还拥有出色的配送网络。因此,您可能会考虑直接从来源获取字体:http://www.google.com/fonts#UsePlace:use/Collection:Exo+2

同样,您需要加载 'Latin Extended (latin-ext)' 以获得所有需要的字形。仪表显示加载这组字形会使加载时间增加三倍。

虽然还有其他方法可以指定更严格的子集,但我会选择 Latin Extended,因为这样可以保持 CDN 的优势。 Exo 可能已经在您的用户浏览器缓存中。

我用过 Google 字体服务,似乎一切正常。

https://jsfiddle.net/maxim_mazurok/wp1powya/

<!DOCTYPE html>
<html lang="hu">
<head>
    <meta charset="UTF-8">
    <link href='http://fonts.googleapis.com/css?family=Exo' rel='stylesheet' type='text/css'>
</head>
    <body style="font-family: 'Exo', sans-serif; font-size:60px">
     'ű' and 'ő' 
    </body>
</html>