Développeur WordPress
WordPress mu et BuddyPress

Flux RSS de Fairweb

Problèmes d’encodage utf8 dans Ajax et jQuery

publication Jeudi 16 juillet 2009 à 5:23 | par Fairweb | publié dans la catégorie Technique web

logo_jquery_215x53Vous avez un site entièrement en utf8 et lors d’un appel à un javascript utilisant jQuery, voilà que la requête vous renvoie des caractères bizaroïdes. Celà ne vous était jamais arrivé et ça vous arrive juste maintenant alors que vous avez autre chose à faire ? Bienvenu au club ! J’ai fini par trouver une solution et je la partage volontiers. D’ailleurs, ça m’évitera de l’oublier.

Voici le post en anglais qui m’a sortie de cet enfer. Il s’agissait d’utiliser overrideMimeType avant l’envoi du fichier php qui traite la demande afin que celui-ci traite les données en utf8.

et pour mon script, celà donne ceci et ça marche :
jQuery(document).ready( function() {
jQuery.ajaxSetup ( {
'beforeSend' : function(xhr) {
xhr.overrideMimeType('text/html; charset=UTF-8');
}
});
jQuery("div.onglet").click(
function() {
var idreq = jQuery(this).attr('id');
var responsediv = '#onglets-contenu';
jQuery("div.onglet").removeClass('active');
jQuery(this).addClass('active');
jQuery.post( fw_onglets_ajaxurl, {
action: idreq
},
function(response) {
jQuery(responsediv).fadeOut(200,
function() {
jQuery(responsediv).html(response);
jQuery(responsediv).fadeIn(200);
}
);
}
);
}
);
}
);

  • Share/Bookmark

7 Réponses »

  1. sinon il y a aussi utf8_encode() de PHP qui fait parfaitement l’affaire…

  2. utf8_encode ne fonctionnait pas dans mon cas, d’où mes recherches sur cette solution javascript.

  3. Mille merci pour cette réponse qui m’a fait gagner du temps, des cheveux, et apprécié le bon fonctionnement de jquery.
    En plus c’est bon à savoir !

  4. AMHA un peu lourd comme solution. Avez vous essayé avec un header content type text xml et le bon charset ?

  5. Rectification:
    J’ai cherché moi aussi
    Il faut ajouter dans votre header de pages html ou php
    meta http-equiv= Content-Type content= text/html; charset=UTF-8
    puis lors d’un requêtes sur la base de donné mysql
    faire une conversion donneeconverti=utf8_encode(donneaconvertir) pour ne plus avoir ces maudit truc bizzard de chiote **** qui m’ont énervé pendant une heure.!!

    La syntaxe ici est mauvaise a cause du script du site.

  6. Merci pour l’astuce… cela m’a épargné des tracas sous wordpress / buddypress.
    Cela m’évite de rajouter des ut8_encode(…) dans le moteur ou en add_filter(…).

  7. Par contre IE mais son grain dans l’affaire…
    Il réagit pas de la même façon :-(

Laisser une Réponse

Subscribe without commenting

wordpressthemesmarket wordpressthemeshop Blogohblog.com - Premium WordPress Themes Premium Wordpress Themes WordPress Arcade Themes