【问题标题】:jquery/ajax set charset headerjquery/ajax 设置字符集标题
【发布时间】:2010-07-04 15:08:30
【问题描述】:

我正在尝试在 jquery 调用中设置 charSet 我正在为立陶宛朋友制作的网站因此有一些带有重音符号等的字母。

就我目前的研究(值得 2 天!!!)显示,我需要将它放在我所做的 beforeSend 部分中:

     $(document).ready(function(){
 $('.content').load('home.html');   //by default initally load text from boo.php
     $('#navlist a').click(function() { //start function when any link is clicked
                    $(".content").slideUp("slow");
                     var content_show = $(this).attr("title"); //retrieve title of link so we can compare with php file
                        $.ajax({
                        method: "load",url: ""+content_show,
                        beforeSend: function(){
                            XMLHttpRequest.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
                            $("#loading").show("fast");
                        }, //show loading just when link is clicked
                        complete: function(){ $("#loading").hide("fast");}, //stop showing loading when the process is complete
                        success: function(html){ //so, if data is retrieved, store it in html
                        $(".content").show("slow"); //animation
                        $(".content").html(html); //show the html inside .content div
                 }
             }); //close $.ajax(
     }); //close click(
 }); //close $(

我试过改成

setRequestHeader("Content-Type", "text/plain;charset=UTF-8");

这也行不通,所以现在我被困住了,四处看了两天,我的神经快到了尽头。

可以在 43dennis.co.nr/bivakas 上查看该网站。基本上,它加载了一堆黑色方形问号,而不是带有特殊口音的字母。

非常感谢您的帮助。

【问题讨论】:

  • 哦.. 使用 XMLHttpRequest.setRequestHeader 或仅使用 setRequestHeader 函数甚至都不起作用......抱歉忘了提及

标签: javascript jquery ajax


【解决方案1】:

由于安全限制,这将不起作用。您需要在运行此 JS 的父页面中设置字符集。 JS/jQuery 将使用相同的字符集。

我检查了您网页的 HTML 并看到以下内容:

<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

你需要将iso-8859-1替换成UTF-8,那么你就不需要在JS/jQuery中费劲了。

我检查了您网页的 HTTP 响应标头,并看到以下内容:

内容编码:gzip 变化:接受编码 日期:2010 年 7 月 4 日星期日 13:37:08 GMT 服务器:LiteSpeed 连接:关闭 X-Powered-By: PHP/5.2.10 内容类型:文本/html 内容长度:600 200 确定

Content-Type 缺少 charset 属性。您还需要在 HTTP 响应标头中进行相同的设置。将其放入您的 PHP 代码中,在您将任何字符发送到响应正文中。

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

【讨论】:

  • 我不确定你从哪里得到这些信息,但这里是我的主页的标题,它设置为 utf-8 ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> w3.org/1999/xhtml"> Bivakas 我目前没有使用 php...
  • 刚刚注意到.. charSet 来自 co.nr 域提供商...不是我的网站 :)
  • 那你需要跳出框架集。带有框架的父页面以 ISO-8859-1 呈现页面。
  • 让老话题死而复生,但与此问题类似。如果您使用的是记事本++,请记住检查您的文件编码。我曾经遇到过它是 ANSI 并引起头痛的情况。可以使用“编码”菜单项进行更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多