【问题标题】:.load() kills character encoding.load() 杀死字符编码
【发布时间】:2011-10-28 01:02:08
【问题描述】:

我正在使用以下代码加载内容:

<script type="text/javascript">
    jQuery.noConflict();
    jQuery(document).ready(function(){
        jQuery('.content-div').load("all-events.html");     
    });
</script>

但是,加载的内容没有我想要的 UTF-8 特殊字符。 有人在某处提到将其放在我的代码顶部:

$html = header('Content-Type: text/html; charset=utf-8'); 

但是我只得到了这个错误: '标题未定义'。

【问题讨论】:

  • 你能给我们举个例子吗?没有看到真实数据很难猜测。
  • 您调用header() 的第二个代码块是PHP?你用什么来服务你的页面。您尝试实现的代码 sn-p 表明对客户端 load() 的服务器端 HTTP 响应需要包含内容类型标头。
  • 好的,如果你在谈论 PHP,我使用了以下代码:&lt;?php header ('Content-type: text/html; charset=utf-8'); ?&gt; 这给了我这个错误Warning: Cannot modify header information - headers already sent by (output started at

标签: jquery


【解决方案1】:

感谢大家的帮助,但是我发现了问题所在。问题是在基本文本文件中添加headers 并没有改变它的实际编码。我在记事本中写了那个文件,无法检查编码是否正确。然后我在Notepad++ 中打开它并从该应用程序设置编码。希望对其他在这个问题上苦苦挣扎的人有所帮助:)

【讨论】:

  • 谢谢!我在 Notepad++ 中设置了 'UTF-8 without BOM' 编码,它可以工作! :)
【解决方案2】:

我遇到了同样的问题,但原始发帖人接受的答案没有帮助。执行以下操作之一为我解决了它:

  1. 将检索到的文档的扩展名从“.html”更改为“.php”。

  2. 在首页主目录下添加.htaccess文件,内容如下:

    AddDefaultCharset UTF-8
    
  3. 以上两者的结合


更多关于这个问题:

使用 Firebug 检查响应和请求标头,可以看到服务器 (Apache) 正在返回以字符集 ISO-8859-1 编码的内容。我需要的是 UTF-8。

虽然所有文件都被编码为 UTF-8 没有 BOM 和

 header("Content-Type: text/html; charset=utf-8");

在主 .php 文件上被调用时,动态包含的 .html 文件的元素被过滤掉了,因为 jQuery 使用浏览器的 .innerHTML 属性来解析检索到的文档并将其插入到当前文档中,正如 Mike 所指出的那样哈布斯塔克。详情请见jQuery's documentation for load

【讨论】:

  • .htaccess 为我工作。谢谢!试图修复它很长一段时间
【解决方案3】:

jQuery 的load() 方法使用浏览器的innerHTML 实现将请求返回的html 加载到当前文档中。这意味着传入的 html 必须使用与当前文档相同的文本编码。您不能将 UTF-8 字符插入到 ISO 8859-1 文档中。

您需要在服务器上解决此问题,而不是在 Javascript 中。使用原始 Html(包含您的 jQuery)响应的服务器端代码需要包含具有正确字符编码的内容类型标头。如果您使用的是 Php,我想您已经找到了如何做到这一点的示例。

【讨论】:

  • 好的,如果你在谈论 PHP,我使用了以下代码:&lt;?php header ('Content-type: text/html; charset=utf-8'); ?&gt; 这给了我这个错误Warning: Cannot modify header information - headers already sent by (output started at
  • 它必须是 PHP 文件的第一行,然后才能发送任何内容(甚至是空格)。见PHP docs
猜你喜欢
  • 1970-01-01
  • 2021-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
  • 2011-11-03
相关资源
最近更新 更多