如何在IE8中显示中文字符而不强制使用兼容模式?

4
所有针对此问题的解决方案都建议使用<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />,这是因为它会强制浏览器以兼容视图(即像IE7一样)渲染,但实际上当用户使用IE7(或其他许多浏览器)时,字符不会显示,而是显示方块。

还有人遇到过这个问题吗?你们是如何处理的?

3个回答

10

下面这段CSS代码对我有用:

font-family: Arial Unicode MS, Arial, Helvetica, sans-serif;

由于在这种情况下,Arial Unicode MS是唯一可用的简体中文字体。

更新:感谢Spike指出,前两种字体的顺序是错误的。已经更正。


1
这是我能找到的唯一有效的方法,尽管我不得不将Arial Unicode MS放在列表中的第一位才能使它在我的机器上正常工作 - “font-family: Arial Unicode MS, Arial, Helvetica, sans-serif” - Spike Williams

5

这不是编码问题。问题在于这个页面上明显可见,它有正确的UTF-8元标记: http://www.jp41.com/internet-explorer/chinese/

问题在于IE8的默认中文字体设置为空!

以下是解决方法。

  1. 按下alt键打开文件菜单。

  2. 进入/tools/internet options/fonts/。

  3. 将"语言脚本"设置为简体中文。

  4. 选择唯一的选项-Arial Unicode MS。

  5. 接受更改-问题解决。

这个疏忽影响了繁体中文、韩文、日文和可能大多数其他亚洲语言。

问题解决后的图像:
http://www.robertpate.net/blog/wp-content/media/ie8-chinese-bug-fullsize.jpg


3
在中文简体字下,我没有列出任何字体。 - Ryan

3
这似乎是一个编码问题。中文字符可能是使用UTF-8编码输出的,但浏览器没有得到通知并默认使用其他编码。
尝试包含这行代码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

这将强制浏览器使用UTF-8编码。(此行包含在参考问题中链接的网站中:http://www.canadainternational.gc.ca/china-chine/index.aspx?lang=eng,在我的IE8中运行良好,并默认为UTF-8。)请注意,原始问题陈述实际上是一个完全不同的问题,涉及到IE8依赖于安装的Windows语言包,而IE7和更早版本则没有这个问题。
或者作为一个快速修复方法,您可以使用IE条件语句仅向IE8浏览器呈现meta标记。
<!--[if IE 8]>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<![endif]-->

IE7应该忽略这一行,并使其正常渲染。


非常有用的信息,但是无论是更改为UTF-8编码还是使用条件Hack都没有帮助。(我不知道为什么...这似乎是一个确定的解决方法!) - Leslie
你确定在没有meta标签的情况下它在IE7中显示正常吗?因为除非IE真的表现得很奇怪,否则那个条件注释应该防止那个meta标签在除了IE8之外的任何浏览器中被处理。你可以添加一个额外的HTML显示元素来确保它不会在其他浏览器(包括IE7)中被解析以进行测试。 - jdmichal
奇怪的是,添加Content-Type元标记会使情况变得更糟!使用它时,所有中文文本都显示为方框。如果没有它,只有下拉菜单中的文本会出现这种情况...其余文本都是正常的。 - alekop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接