显示此行为的网址位于:
http://culturewithinaculture.org/introduction.php
http://culturewithinaculture.org/about.php
该网站尚未正式发布。但我的问题是在右侧,日本副本。我的文档类型设置为UTF-8,这是我认为它应该是。在Firefox和Safari上我没有任何问题......显示正常。在IE 8中,它是方框和非法字符。有趣的是,如果你点击“兼容模式”按钮,它会刷新页面,一切都很好。然而,这也有不同的结果,我的一个朋友在他们的XP机器上使用IE 8尝试了它,并且兼容模式不起作用(仍然有无法识别字符的方框)。
我希望这是跨浏览器功能,我不想强迫IE用户点击“兼容模式”按钮或类似的东西。我知道我可以让日文复制一个大图像,但我希望文本可以选择和HTML,如果可能的话。
你们有没有遇到过这个问题?是否有一些特殊的IE只有CSS或jQuery魔法我可以使用强制正确的文本显示?也许是一个字体伎俩?
非常感谢所有帮助!
答案 0 :(得分:2)
以下是您的回复标题:
Date: Thu, 08 Jul 2010 22:52:12 GMT Server: Apache/2.0.54 X-Powered-By: PHP/4.4.8 Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 5319 Keep-Alive: timeout=5, max=88 Connection: Keep-Alive Content-Type: text/html
请注意,Content-Type
标头缺少charset
属性,因此Webbrowser必须使用平台默认编码,通常是ISO-8859-1。 FireFox实际上足够智能,可以自动检测正确的编码并应用它(您可以通过 View> Character Encoding 进行检查)。
由于这些页面似乎是PHP生成的,因此最好的做法是将以下内容添加到PHP页面的 top (或header-include,如果有的话),之前任何字符都已发送到响应正文:
header('Content-Type: text/html; charset=UTF-8');
答案 1 :(得分:2)
如果您使用的是Windows XP,请选中“东亚语言”支持。
答案 2 :(得分:1)
我遇到了类似的问题,结果证明是IE8默认设置的问题。如果你去工具 - >互联网选项 - >从下拉列表中选择字体并选择日语,您将看到没有为该语言选择默认字体(以及其他几种字体)。只需选择一种字体就可以了。很高兴从IE团队转来,对吧?
答案 3 :(得分:0)
您的元标记如下。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
另一个网站的
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
当然,任何浏览器都应该正确处理。但请尝试一下。
答案 4 :(得分:0)
经过大量的阅读和测试之后,我能够让这个工作的唯一方法是添加以下代码。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
据我所知,这迫使IE 8使用兼容模式。它适用于我上面包含的两个链接。我很想知道如何在不强迫这种“模式”的情况下纠正这种情况,但是现在它起作用了,我很高兴。
感谢所有建议。
答案 5 :(得分:0)
我经常使用与您链接的页面几乎完全相同的标题(请参阅下面的警告),以便在没有 IE = EmulateIE7 的情况下为我的日语页面提供服务而且我没有遇到过您的问题在IE8上描述。我已经从我自己的页面粘贴了这个以确认:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="EN">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
我当时所说的是这个HTML没有办法导致它自己的任何问题 - 除了一个微小的区别 - 我会更改你的HTML以包含元标记为头部中的第一项,即标题上方。
我还有其他两个类似的麻烦,并且上面没有帮助,他们是:
实际持有这些字符的文件的编码:utf8或utf8y - 后者导致各种问题,通常只是IE浏览器 - 这可能只影响像我这样的静态服务页面
Apache服务器的配置将AddDefaultCharset属性设置为ON。要解决此问题,需要向我的主机提供商发送电子邮件请求
来自Apache文档:
<强> AddDefaultCharset 强>: 此伪指令指定将添加到任何响应中的字符集的名称,该响应在HTTP标头中的内容类型上没有任何参数。这将通过META标记覆盖文档正文中指定的任何字符集。 AddDefaultCharset Off的设置禁用此功能。 AddDefaultCharset On根据指令的要求启用Apache的内部默认charset iso-8859-1。
答案 6 :(得分:0)
我一直在争论相同的问题,但放大了我需要在同一页面上显示许多不同语言的地方。这是我到目前为止所学到的......
这确实是一个字体问题。正在使用的字体不包含所需的外来字符,因此您会看到损坏的字符。大多数浏览器足够智能,可以使用包含所需字符的unicode版本替换字体,但是他们将该功能从IE8中删除(ow.ly/hrIB9)。
IE = EmulateIE7解决方案
我对强迫IE8表现为IE7的想法感到畏缩,并且在这样做的情况下交易一个解决方案来解决其他问题。经过一些挖掘和一些测试后,我了解到,即使这是一个完整的解决方案,因为没有安装支持东亚语言的字体的IE7用户也会看到破碎的字符。 (在我的测试中使用'Arial'作为我在使用IE7全新安装XP时的字体就是这种情况。)
那么为什么迫使IE8进入IE7模式呢?从我收集到的,当安装MS Office时,它附带'Arial Unicode MS',其中包含东亚字符,因此可用作后备。在我的XP IE7安装上安装'Arial Unicode MS'后,字符显示正常。在强迫我的网站表现为IE7之后,IE8中的字符显示也很好。不过,这基本上将IE8转变为IE7,谁想要呢?
附注:我尝试在条件注释中包装X-UA-Compatible元以避免IE9也表现为IE7,但这样做会触发兼容性按钮以显示我也想避免的。
我的解决方案
不确定这个问题是否有灵丹妙药,但我提出的是......
如果我们将'Arial'定义为font-family并且用户安装了'Arial Unicode MS',则他们的浏览器应根据需要在除IE8之外的所有浏览器中交换字体。由于IE8不够智能,无法自动进行交换,我们可以通过IE8特定类传递自己的字体......
向目标IE8添加条件评论...
<!--[if IE]><![endif]-->
<!doctype html>
<!--[if lt IE 7 ]><html class="ie6"><![endif]-->
<!--[if IE 7 ]><html class="ie7"><![endif]-->
<!--[if IE 8 ]><html class="ie8"><![endif]-->
<!--[if IE 9 ]><html class="ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html><!--<![endif]-->
然后在我们的CSS中我们可以添加...
BODY {font-family:Arial, Verdana, Helvetica}
.ie8 BODY {font-family:'Arial Unicode MS', Arial, Verdana, Helvetica}
这将解决用户安装了“Arial Unicode MS”的问题。为了确保支持,我们可以选择加载'Arial Unicode MS',将其包含在@ font-face {}中,但'Arial Unicode MS'是22MB,所以不确定是否可取。就我的目的而言,我正在考虑提供一个“看到这个有麻烦吗?”链接将指示用户如何下载和安装'Arial Unicode MS'。
希望这有帮助!
答案 7 :(得分:-1)
这对我有用:
禁用亚洲语言支持(控制面板|区域和语言选项|语言 - 取消选中'为东亚语言安装文件');重启;然后通过重新检查同一个框重新启用;并重新启动。瞧!
重新启用亚洲语言支持需要Win XP安装光盘。