在IE11中显示错误的字符实体 - ·呈现为Σ - 这真的是一个字符集问题吗?

时间:2014-05-30 20:37:16

标签: html5 utf-8 character-encoding internet-explorer-11

我使用HTML5设计了几个UI原型(最初在Chrome中测试),并且在其他浏览器中进行测试时,注意到IE11将不同的字符替换为常见的字符实体,例如& middot;和& nbsp;在我正在测试的两个UI中的一个上。

这两个原型都托管在同一台服务器上,位于不同的文件夹中,所以我对我所做的研究有点困惑,它指向IE10& IE11在HTML5中提供了优先于HTTP over BOM的优先级;但是......如果服务器发出声明ISO-8859-1或windows-1251的标头,覆盖UTF-8字符集,我不应该在两个原型上看到同样的问题吗?我不会看到其他角色的问题吗?

真正让我烦恼的是,无论是什么字符集,标记中的HTML字符实体都是一样的,对吧? IE如何设法误解?

无论如何,我试过了:

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

以及:

 <meta charset="utf-8">

<meta charset="ISO-8859-1">

仍然得到†而不是不间断的空格,或Σ而不是·

我没有主机权限来更改.htaccess文件,但我会将该建议传递给我的主管。我只是不确定我对IE的行为方式有一个合理的解释;这个字符交换真的是由IE无法识别UTF-8造成的吗?

如果问题确实来自HTTP vs BOM优先级,我如何解释在子文件夹A中出现但在同一主机上的子文件夹B中没有出现的问题?

2 个答案:

答案 0 :(得分:0)

如果我没有清楚地提出我的问题,我很抱歉。回顾一下,我在标记中使用多年的字符实体在IE11中显示不正确。我对某个原因的搜索引发了我关于堆栈溢出和其他地方的几个帖子,这些帖子表明问题可能是由于IE将优先级放在BOM上的HTTP标头上(与其他浏览器不同)。

请参阅:UTF-8 encoding does not work properly with Internet Explorer but works perfectly with Mozilla Firefox(还建议:IE uses the wrong character set when it renders an HTML page)。

但是,在检查确切地看到正在对页面应用的编码时,它一直在说UTF-8。所以,我提出这个问题,以确定是否还有其他已知原因。我没有得到答案,但我自己偶然发现了。在某种程度上,答案隐含在答案中,我链接的帖子的作者给出了他自己的问题。我当时根本没看到它。

简单地说,我的&#34;有缺陷&#34;原型没有声明unicode字体。我以为我用相同的基本css开始了两个原型,但是......是的,这些事情发生了。我没有检查过的一件事,因为我非常自信地死记硬背。我确实在这个(和相关的)主题的各个帖子中引用了HTML5中对unicode字体的需求,但我要强调一下:

请务必在HTML5中使用UTF-8的Unicode字体

我假设IE以外的浏览器在其默认字体系列的字体堆栈中具有unicode版本。

答案 1 :(得分:0)

移动字体的顺序     身体 {       font-family:“Helvetica Neue”,Helvetica,Arial,sans-serif; 对此     身体 {       font-family:Arial,“Helvetica Neue”,Helvetica,sans-serif; 在你的bootstrap.css中