JQuery / AJAX установить заголовок набора символов - PullRequest
1 голос
/ 04 июля 2010

Я пытаюсь установить charSet в вызове jquery для сайта, который я создаю для друга из Литвы, поэтому у него есть несколько букв с акцентами и т. Д.

Что касается моих исследований (стоит 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. В основном он загружается с кучей квадратных черных вопросительных знаков вместо букв со специальными акцентами.

Большое спасибо за помощь.

1 Ответ

5 голосов
/ 04 июля 2010

Это не сработает из-за ограничений безопасности.Вам нужно установить кодировку на родительской странице, с которой запускается этот JS.JS / jQuery будет использовать тот же набор символов.

Я проверил HTML-код вашей веб-страницы и вижу следующее:

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

Вам необходимо заменить iso-8859-1 на UTF-8,тогда вам не нужно беспокоиться об этом в JS / jQuery.

Я проверил заголовки HTTP-ответа вашей веб-страницы и вижу следующее:

Content-Encoding: gzip
Vary: Accept-Encoding
Date: Sun, 04 Jul 2010 13:37:08 GMT
Server: LiteSpeed
Connection: close
X-Powered-By: PHP/5.2.10
Content-Type: text/html
Content-Length: 600

200 OK

Content-Typeотсутствует атрибут charset.Вы также должны установить то же самое в заголовке ответа HTTP.Поместите это в свой код PHP, за до вы отправляете любой символ в тело ответа.

header('Content-Type: text/html; charset=UTF-8');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...