为什么IE无法显示UTF-8编码的文本? [英] Why is IE failing to show UTF-8 encoded text?

查看:147
本文介绍了为什么IE无法显示UTF-8编码的文本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些汉字,我想在Kentico网站上显示。此文本复制/粘贴到Kenticos FCK编辑器中,然后保存并显示在网站上。在Firefox,Chrome和Safari中,字符完全按预期显示。在IE 8标准模式下,我只看到框。



文本是UTF-8编码的,据我所知,它在响应中被正确编码服务器。有一个 Content-Type:text / html; charset = utf-8 响应标头和< meta http-equiv =content-typecontent =text / html; charset = UTF-8/> ; 元标记。当我从服务器下载HTML并将有问题的字符的字节与原始的UTF-8文本文档进行比较时,字节全部匹配,除了HTML不包括BOM。



这似乎是特定于IE 8在标准模式。在IE 8 Quriks:它的工作原理。 IE 7标准:它工作。 IE 7怪癖:工程。我不知道标准模式会导致这个问题。



奇怪的是,如果我从IE浏览源,字符正确显示在源视图中。 p>

有什么建议可能是错误的?我缺少一些明显的东西?

解决方案

我不能详细解释这个。但这确实是一个已知的问题。



这是一个小的可重复的代码片段:

 <!DOCTYPE html> 
< html lang =en>
< head>< title> test< / title>< / head>
< body>< p>&#65185;< br> 0 0< / p>< / body&
< / html>

将其保存为UTF-8并在IE8中查看。你什么也看不到。将 0 0 替换为 00 并重新载入网页。它会工作正常!这是绝对令人惊讶。奇怪的是,将 0 0 替换为 aa < br> 通过< / p>< p> 将修复它。



对不起,我没有授权资源证明这一点,但这只是另一个证据IE8不是好像我们期望的那样。最好的方法是尝试更改HTML和/或逐步构建它,以便它在某些时候或在无效时工作,将以下元标记添加到磁头以强制IE8进入IE7模式:

 < meta http-equiv =X-UA-Compatiblecontent =IE = 7/> 


I have a some Chinese characters that I'm trying to display on a Kentico-powered website. This text is copy/pasted into Kenticos FCK editor, and is then saved and appears on the site. In Firefox, Chrome, and Safari, the characters appear exactly as expected. In IE 8 Standards mode, I see only boxes.

The text is UTF-8 encoded, and as far as I can tell, it is encoded correctly in the response from the server. There is a Content-Type: text/html; charset=utf-8 response header, and a <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> meta tag on the page too. When I download the HTML from the server and compare the bytes of the characters in question to the original UTF-8 text document, the bytes all match, except the HTML does not include a BOM.

This seems to be specific to IE 8 in Standards mode. In IE 8 Quriks: it works. IE 7 Standards: it works. IE 7 Quirks: Works. I'm not sure how standards mode would cause this problem.

Strangely, if I view-source from IE, the characters show up in the source view correctly.

Any suggestions on what might be wrong here? Am I missing something obvious?

解决方案

I can't explain this in detail. But this is indeed a known problem.

Here's a small reproducible code snippet:

<!DOCTYPE html>
<html lang="en">
    <head><title>test</title></head>
    <body><p>&#65185;<br>0 0</p></body>
</html>

Save it in UTF-8 and view in IE8. You see nothing. Replace 0 0 by 00 and reload the page. It'll work fine! This is absolutely astonishing. Weirdly, replacing 0 0 by a a or the <br> by a </p><p> will fix it as well. It'll have something to do with failures in whitespace rendering.

Sorry, I don't have authorative resources proving this, but this is just another evidence IE8 isn't as good as we expect it is. Your best bet is to try to change the HTML and/or build it step by step so that it works at some point or when in vain, add the following meta tag to the head to force IE8 into IE7 mode:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

这篇关于为什么IE无法显示UTF-8编码的文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆