Encodage caractères AJAX

Résolu/Fermé
neointhematrix Messages postés 71 Date d'inscription mardi 13 février 2007 Statut Membre Dernière intervention 4 février 2010 - 26 sept. 2007 à 16:38
 renoi - 24 juil. 2012 à 15:01
Bonjour à tous,

Je suis confronté à un problème qui, je pense, ne doit pas être trop compliqué à résoudre et pourtant je passe vraiment à coté :).

Je fais une application web avec de l'ajax. Lorsque je met à jour des données dans mes divs, via ma BDD, les caractères accentués se retrouve remplacés par ces (maudits) losanges noirs à point d'interrogation. apparemment ma bdd est en interclassement : Latin1_swedish_ci. Je ne sais pas si je dois mettre un truc de spécial quant à l'encodage dans ma page html et si il faut mettre quelque chose de spécial dans mon fichier php ou j'éxécute ma requete.

Merci d'avance de vos réponses.

11 réponses

slt,
j'ai eu ce problème la semaine dernière.
j'ai juste mis cette ligne ci-dessous en haut dans mon fichier avant la requête et ça m'a résolu mon problème de caractères bizarroides..

essaye toujours ->

header('Content-Type: text/html; charset=ISO-8859-1');

++
10
Il faut en effet encoder avec iso-8859-1, mais ce n'est pas suffisant. ça marche si le texte est déclaré sous forme de variable php, puis il faut utiliser htmlentities. Par exemple:
<?php $chaine = "ééé àà èèè"; ?> au début du document, puis entre les balises <body> et </body>:
<?php print htmlentities($chaine);?>
Et là plus de problème avec les accents. (je suppose qu'ici le script ajax et le script contenant le texte sont distincts).
Comme quoi Ajax c'est plus facile avec PHP.
0
votrewebfacile
3 mars 2010 à 02:31
il y a plus simple selon moi :

echo utf8_encode($afficher);

qui va afficher la variable $afficher après l'avoir convertie en UTF8 :)
0
kressly Messages postés 29 Date d'inscription mercredi 1 septembre 2010 Statut Membre Dernière intervention 20 juillet 2012
22 juil. 2011 à 16:17
Ce n'est pas satisfaisant parce que moi j'ai essayé toutes vos méthodes mais je n'ai pas obtenu gain de cause
0