使用Verdana渲染IE8和IE9中的变音符号(åäö)

时间:2012-03-09 14:56:36

标签: html internet-explorer-8 fonts internet-explorer-9

在某些页面上有这些奇怪的问题,有时候在IE8和IE9中渲染变音符号(åäö)会出错。编码是utf-8(主要是网站的工作,所以我知道它是正确的)我试图缩小css类,似乎Verdana只受到影响。尝试过不同的电脑。

我认为我可能是与X-UA兼容的元数据并且没有运气就更改为此标记。

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

这应该是这样的:

enter image description here

这是IE8和IE9中的结果

enter image description here

1 个答案:

答案 0 :(得分:1)

问题显而易见,因为尽管文本是使用有效的UTF-8编码的,但使用了分解的 Unicode规范化表单,请参阅Unicode equivalence。似乎在Windows上,许多字体在使用通常的单个预组合字符时效果最好,而不是单独跟随变音标记的基本字母序列。

例如,让我们用十六进制编辑器查看单词från

在您的网站上,它被编码为66 72 61 CC 8A 6E(即拉丁小写字母fra,然后U+030A代码点代表合并在上面,然后是n)。

但在Windows中,通常的编码为66 72 C3 A5 6E(即拉丁小写字母från)。因此,字母å通常由单个代码点U+00E5表示(而不是由序列U+0061, U+030A表示)。

如果您使用的是PHP,请先尝试使用Normalizer class对文本进行规范化(只需确保已安装intl扩展名)。