mrd*_*bob 27 unicode internet-explorer character-encoding ie8-compatibility-mode
我有一些汉字,我试图在Kentico驱动的网站上显示.此文本被复制/粘贴到Kenticos FCK编辑器中,然后保存并显示在网站上.在Firefox,Chrome和Safari中,字符完全按预期显示.在IE 8标准模式中,我只看到框.
文本是UTF-8编码的,据我所知,它在服务器的响应中被正确编码.页面上还有一个Content-Type: text/html; charset=utf-8响应标头和一个<meta http-equiv="content-type" content="text/html; charset=UTF-8" />元标记.当我从服务器下载HTML并将相关字符的字节与原始UTF-8文本文档进行比较时,所有字节都匹配,但HTML不包含BOM.
这似乎是标准模式下IE 8特有的.在IE 8 Quriks:它的工作原理.IE 7标准:它的工作原理.IE 7怪癖:工作.我不确定标准模式会如何导致这个问题.
奇怪的是,如果我从IE查看源代码,则字符会在源视图中正确显示.
关于这里可能有什么问题的任何建议?我错过了一些明显的东西吗
Bal*_*usC 11
我无法详细解释这一点.但这确实是一个已知问题.
这是一个可重复的小代码片段:
<!DOCTYPE html>
<html lang="en">
<head><title>test</title></head>
<body><p>ﺡ<br>0 0</p></body>
</html>
Run Code Online (Sandbox Code Playgroud)
将其保存为UTF-8并在IE8中查看.你什么也看不见.更换0 0的00并重新加载页面.它会工作正常!这绝对令人惊讶.奇怪的是,替换0 0为a a或<br>将由一个</p><p>意志修复它.它与空白渲染中的失败有关.
对不起,我没有证明这一点的授权资源,但这只是IE8不如我们预期的那样好的另一个证据.你最好的办法是尝试改变HTML和/或逐步构建它,以便它在某些时候工作或徒劳无功,将以下元标记添加到头部以强制IE8进入IE7模式:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
Run Code Online (Sandbox Code Playgroud)
默认的IE编码是西欧(ISO),因此您需要手动将其更改为UTF-8或强制IE使用给定的编码,如下所示:
HTML 4.01
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
HTML 5
<meta charset="UTF-8">
您还需要使用标记中的lang属性<html>来声明语言
<html lang="zh">
Run Code Online (Sandbox Code Playgroud)
对于中国人
| 归档时间: |
|
| 查看次数: |
74392 次 |
| 最近记录: |