Opera和Safari不显示latin1字符

时间:2011-11-16 18:06:48

标签: utf-8 character-encoding safari opera latin1

我在最新版本的Safari和Opera中显示latin1字符时遇到问题,例如“ç”,“ã”或“À”。我使用Ajax和JQuery(Latin1 charset)从RoR后端接收数据(JSON),网页本身依赖于Latin1,这要归功于:

<?php header('Content-Type: text/html; charset=ISO-8859-1');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="http://www.facebook.com/2008/fbml"
      lang="pt">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>

我在后面执行包含十行的自定义Javascript lib时也特别声明了ISO-8859-1:

    <script type="text/javascript" src="js/lib.js" charset="ISO-8859-1"></script>

然而,两个浏览器之后都无法显示字符。 Safari显示臭名昭着的黑色钻石,而Opera只显示一个空白区域。

有什么想法吗?提前致谢

1 个答案:

答案 0 :(得分:1)

很可能在您的内容类型中发送了错误的字符集:HTTP标头用于JSON数据。在您的帖子中,您显示页面本身和包含的SCRIPT的标题和META标记,但假设JSON数据是单独发送的,它将单独标记。它有助于获得一个链接到这个问题的页面,但如果你不想发布一个,你可以使用像Microsoft Fiddler HTTP调试器这样的工具来检查在浏览器和浏览器之间来回发送的标题。网站。如果Web服务器发送

  Content-type: text/html;charset=UTF-8

对于内容为“latin”(iso-8859-1)的文件,反之亦然,这是你的问题。修复HTTP标头,你会没事的。