我使用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中没有出现的问题?
答案 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中