.load()杀死字符编码

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

 jQuery.noConflict(); jQuery(document).ready(function(){ jQuery('.content-div').load("all-events.html"); });  

但是,在没有UTF-8中我想要的特殊字符的情况下加载内容。 有人提到它在我的代码的顶部:

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

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

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

我遇到了同样的问题,但原始海报接受的答案没有帮助。 做一个波纹管动作为我解决了它:

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

  2. 使用以下内容将.htaccess文件添加到主页的主目录中:

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


更多关于这个问题:

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

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

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

在主.php文件中被调用,动态包含的.html文件的元素被过滤掉,因为jQuery使用浏览器的.innerHTML属性来解析检索到的文档并将其插入到当前文档中,如Mike Haboustak所述。 有关更多详细信息,请参阅jQuery的文档以获取load

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

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