0

我无法在最新版本的 Safari 和 Opera 中显示 latin1 字符,例如“ç”、“ã”或“À”。我使用 Ajax 和 JQuery(Latin1 字符集)从 ​​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 库还特别声明了 ISO-8859-1:

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

尽管如此,两个浏览器都无法在之后显示字符。Safari 显示了臭名昭著的黑色菱形,而 Opera 只是显示了一个空白区域。

有任何想法吗?提前致谢

4

1 回答 1

1

最有可能在您的 Content-type: HTTP header for the JSON data中发送的错误字符集。在您的帖子中,您显示了页面本身的标题和 META 标签以及包含的 SCRIPT,但假设 JSON 数据是单独发送的,它将被单独标记。获得一个有此问题的页面的链接会有所帮助,但如果您不想发布一个链接,您可以使用 Microsoft Fiddler HTTP 调试器之类的工具来检查在浏览器和浏览器之间来回发送的标头网站。如果 Web 服务器发送

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

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

于 2011-11-21T11:43:19.663 回答