2010-07-04 6 views
1

Je suis en train de mettre le jeu de caractères dans un appel jquery le site que je fais est pour un ami lituanien a donc quelques lettres avec accents etc.jquery/ajax FIXER ENTETE charset

En ce qui concerne mes recherches jusqu'à présent (2 jours d'une valeur !!!) a montré, je dois le placer dans la section beforeSend que je l'ai fait comme suit:

 $(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 $(

J'ai essayé de changer à

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

qui n'a pas non travail, alors maintenant je suis s Tuck et à la fin de mes nerfs ayant regardé autour pendant deux jours.

Le site peut être consulté à 43dennis.co.nr/bivakas Fondamentalement, il charge avec un tas de marques carrées noires des questions à la place des lettres avec des accents particuliers.

Un grand merci pour l'aide.

+0

Oh .. avec soit XMLHttpRequest.setRequestHeader ou tout simplement setRequestHeader la fonction ne fonctionne même pas ... désolé oublié de mentionner que – nicky

Répondre

5

Cela ne va pas travailler en raison des restrictions de sécurité. Vous devez définir le jeu de caractères dans la page parente à partir de laquelle ce JS s'exécute. Le JS/jQuery utilisera le même jeu de caractères.

j'ai vérifié le code HTML de votre page Web et je vois ce qui suit:

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

Vous devez remplacer iso-8859-1 par UTF-8, alors vous n'avez pas besoin de soucis avec dans JS/jQuery.

J'ai vérifié les en-têtes de réponse HTTP de votre page Web et je vois ce qui suit:

 
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

Le Content-Type manque l'attribut charset. Vous devez également définir la même chose dans l'en-tête de réponse HTTP. Mettez dans votre code PHP, avant vous émettez un caractère dans le corps de la réponse.

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

Im ne sais pas où vous avez obtenu cette information d'ici, mais est l'en-tête de ma page principale qui est défini sur utf-8 \t Bivakas \t Je n'utilise pas php ... – nicky

+0

Juste noté .. que charSet est du fournisseur de domaine co.nr ... pas mon site Web :) – nicky

+0

Ensuite, vous devez sauter hors de frameset. la page de parent avec le cadre est rendu de la page dans la norme ISO-8859-1. – BalusC