我有一些汉字,我想在 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 查看源代码,字符会正确显示在源代码视图中。

对于这里可能出现的问题有什么建议吗?我错过了一些明显的东西吗?

有帮助吗?

解决方案

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

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

<!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 经过 a a 或者 <br></p><p> 也将修复它。这将与空格渲染中的故障有关。

抱歉,我没有权威资源证明这一点,但这只是另一个证据IE8并不像我们预期的那样好。最好的选择是尝试更改HTML和/或逐步构建它,以便在某个时候或徒劳地工作时,将以下元标记添加到头部中,以将IE8迫使IE8进入IE7模式:

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

其他提示

默认的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">

中文

只是一个疯狂的猜测,但这可能是一个字体问题。也许您浏览器可用的字体可以代表中文字符。

我设法通过将文件的 UTF 格式更改为“带有字节顺序标记的 UTF8”来解决相同的问题。

(我使用的编辑器允许我轻松切换文件格式,不知道如何继续,但值得看看不同的 UTF 文件格式,IE(8) 根本不喜欢没有字节顺序标记的 UTF8...)

我还能够重现上面答案中的片段;

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

但是我的结果是“间歇性的”,而在UTF-Without-Without Bom中(有时会出现口音,有时会出现怪异的魅力,而且对我来说,这看起来并不像是一个空白的问题...)请注意,我在摆弄lang =“ fr”和lang =“ es”,但是在所有情况下,更改UTF文件格式似乎已经永久解决了我的口音显示问题。:)

我不是 100% 熟悉 UTF,但如果字符使用 2 个字节进行编码,则必须假设空白问题和误解的字符可能与源中未对齐的字节有关。

这可能是导致Rails 3在其输出中添加雪人角色的类型的类型: Ruby中的Rails 3表格中的Ruby中的_snowman参数是什么?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top