为什么Internet Explorer 9会在UTF8和空白内容上显示奇怪的字符?

时间:2011-05-04 10:30:17

标签: php html utf-8 whitespace internet-explorer-9

我目前正在一个客户网站上工作,偶然发现这个奇怪的错误,给出了HTML:

<p>&nbsp;</p>
<p>
    <span class="indentLeft">
        REDACTED&nbsp;A/S&nbsp;har hovedsæde i Århus (foto).
    </span>
</p>

Internet Explorer 9将显示以下内容:

IE9 Snippet showing whitespace characters

现在,首先我认为这是一个编码问题,除了IE7,IE8,firefox,chrome和safari显示它正确。

所以我的问题确实是......在Internet Explorer 9中是否有一些我不知道的新内容,某种类型的标题使它显示HTML实体,或者它是我的服务器端编码?

我试图强行改变IE9中的编码而没有运气,所以我回到原点。

5 个答案:

答案 0 :(得分:12)

存储HTML的文件使用的字符编码是什么?确定编码,然后设置任何解析文档所使用的编码。例如,如果您的文档使用UTF-8编码存储:

<head>
    <meta charset="UTF-8">
</head>

我也会尝试更改字体,只是为了确保它不是字形问题,但我也怀疑编码。

答案 1 :(得分:3)

我在IE9中遇到类似的问题,其中xmlHTTPRequest提供的utf-8被解释为ISO 8859-1,尽管实现文档包含:

<meta http-equiv="content-type" content="text/html;charset=utf-8">

.. XMLHttpRequest.getResponseHeader('Content-Type')返回text/html; charset=UTF-8

更改为非TTF字体无效

如果实施文件包含:

,则会发生这种情况
<meta http-equiv="X-UA-Compatible" content="IE=8">

如果删除该行或将其更改为:

,问题就会消失
<meta http-equiv="X-UA-Compatible" content="IE=7">

答案 2 :(得分:3)

我通过在visual studio中打开文件(theme-ui.php)并将其保存为“没有签名的unicode”解决了这个问题。

答案 3 :(得分:2)

我遇到了同样的问题,尝试了Nathan和Terje的解决方案但没有成功。

我最终通过将Notepad ++中的编码从'无BOM的UTF-8编码'更改为'以UTF-8编码'来解决问题

希望有所帮助。

答案 4 :(得分:0)

在我的情况下,问题是关于字体! 我使用的阿拉伯字体与IE不兼容,但与chrome配合得很好。 我将字体更改为兼容的字体!