我使用HTML5设计了几个UI原型(最初在Chrome中进行测试),在其他浏览器中进行测试时,我注意到IE11正在用不同的字符替换普通的字符实体,比如:在我正在测试的两个UI中的一个上。
这两种原型都托管在同一台服务器上,位于不同的文件夹中,因此我对我所做的研究感到有点困惑: IE10 & IE11使HTML5中的HTTP优先于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吗?
如何解释这个问题出现在子文件夹A中,而不是出现在同一主机上的子文件夹B中,如果问题确实是由HTTP优先级造成的?
发布于 2014-06-03 00:20:11
如果我没有清楚地提出我的问题,我很抱歉。综上所述,多年来我在标记中使用的字符实体在IE11中显示不正确。我对原因的搜索导致了我在堆栈溢出和其他地方的几个帖子,这表明问题可能是由于IE优先于BOM的HTTP头(不像其他浏览器)的方式。
参见:UTF-8编码在Internet中不能正常工作,但在Mozilla Firefox上工作得很好 (也建议:IE在呈现HTML页面时使用错误的字符集)。
然而,在检查到底是什么编码被应用到页面,它继续说UTF-8。所以,我提出了这个问题,看看是否还有另一个已知的原因。我没有得到答案,但我偶然发现了我自己。在某种程度上,答案是隐含在答案的作者的帖子,我链接给他自己的问题。我当时根本没有看到。
简单地说,我的“缺陷”原型没有声明unicode字体。我以为这两个原型都是用相同的基本css开始的,但是.是啊,这些事都会发生。有一件事我没有检查,因为我很自信它是死记硬背的。在有关这个(及相关)主题的各种文章中,我确实注意到了HTML5中对unicode字体需求的引用,但让我强调一下:
确保在HTML5中使用UTF-8的Unicode字体。
我假设IE以外的浏览器在默认字体系列的字体堆栈中都有unicode版本。
发布于 2014-09-17 22:45:48
将字体的顺序从body {字体-族:"Helvetica Neue",Helvetica,Arial,sans-serif;移到这个身体{字体-家族: Arial,"Helvetica Neue",Helvetica,sans-serif;在您的bootstrap.css中。
https://stackoverflow.com/questions/23963044
复制相似问题