Css @字体:重音字符不显示右侧-仅在Safari中

Css @字体:重音字符不显示右侧-仅在Safari中,css,fonts,safari,font-face,Css,Fonts,Safari,Font Face,我正在通过网站上的@font-face使用官方webfont。在Chrome/Firefox中,“é”等重音字符显示良好,但在Safari中它们使用默认字体(如Arial)呈现。字体文件包含所有这些字符 铬: 狩猎: 以下是使用的@font-face声明: @font-face { font-family: 'simplon_bp_mono_lightlight'; src: url('fonts/SimplonMono-Light-WebS.eot'); /* IE9 Compat

我正在通过网站上的@font-face使用官方webfont。在Chrome/Firefox中,“é”等重音字符显示良好,但在Safari中它们使用默认字体(如Arial)呈现。字体文件包含所有这些字符

铬:

狩猎:

以下是使用的@font-face声明:

@font-face {
  font-family: 'simplon_bp_mono_lightlight';
  src: url('fonts/SimplonMono-Light-WebS.eot'); /* IE9 Compat Modes */
  src: url('fonts/SimplonMono-Light-WebS.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('fonts/SimplonMono-Light-WebS.woff2') format('woff2'), /* Super Modern Browsers */
       url('fonts/SimplonMono-Light-WebS.woff') format('woff'), /* Pretty Modern Browsers */
       url('fonts/SimplonMono-Light-WebS.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('fonts/SimplonMono-Light-WebS.webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}
我尝试了此解决方案,但无效:


我是不是遗漏了一些明显的东西?

好吧,我想出来了。似乎重音字符与普通字符不同。我的客户可能从Word复制粘贴的文本(我猜),因为如果我手动重写每个字符,它就会工作。这真的很奇怪,因为如果我查看源HTML,字符看起来是一样的。这是一个愚蠢的结果,但是,也许它会在将来帮助别人。如果有人对字符之间的差异有解释,尽管看起来完全相同(并且在Chrome中显示正确),我很想了解这一点。

您只需要将此标记添加到HTML的头部:

<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 


您可以在上阅读有关设置特定字符集的更多信息。

这是您购买的字体吗?我发现这篇文章可能对您有所帮助:您是否检查过Safari是否使用与其他浏览器不同的字体文件?你说字体包含这些字符,但是你查看了所有的文件了吗?谢谢你的回复!是的,我确实购买了字体,它与所有web文件一起提供(列在我的@font-face声明中)。然而,在使用这个web官方版本之前,我通过FontSquirrel转换了TTF文件。这导致了同样的问题(这就是为什么我后来买了网络版,希望这能解决这个问题)。我确认Safari使用.woff文件;我强迫Chrome使用相同的(而不是woff2),它仍然在Chrome中正确显示,这证明文件是正确的。(请注意,原始字体文件确实包含重音字符,在Chrome中可以正常工作)谢谢。客户端将文本从Word粘贴到WordPress时也存在同样的问题。如果有人知道如何解释这种现象,我会非常感兴趣。非常感谢,我也会非常有兴趣对这个问题进行解释@Jean BaptisteMartin只是在纯文本编辑器中设置文本格式,以便删除奇怪的字符。@guylabe.ca是的,我想更多地了解为什么同一个字符有不同的字符(“é”)的原因,但在使用文本编辑器时,它确实工作得很好。可能是因为[unicode等效](),以及[normalization forms]()。Safari可能会将(NFD)重音字符分解为两个字符,第二个字符是结合变音符号的字符。请在javascript控制台中尝试此操作:
'\u00e9'==“e\u0301”。normalize()
这不是与字符集相关的问题。