XMLHTTPREQUEST et caractere speciaux - HTML/CSS - Programmation
Marsh Posté le 18-07-2005 à 18:02:00
Moi je fous tout en utf-8 du début à la fin J'ai du coup résolu pas mal de choses...
Marsh Posté le 18-07-2005 à 18:10:30
ouais.. je crois que je vais faire comme toi maintenant
serieux je susi trop content ca fait trois jour que je suis dessus et finalement... les solutions etait toute bete...
enfin bon ils auraient pu s arranger pour que on puisse reellement modifier le charset avec setRequestHeader parce que la on peut pas..
Marsh Posté le 18-07-2005 à 18:11:28
On peux pas faire :
variable.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8'); |
Ce serait logique
Marsh Posté le 26-07-2005 à 08:43:33
Moi je m'en sors pas... en fait, lors de la génération de la page de réponse PHP, je met l'header comme shrito l'a dit plus haut, et voilà là c'est OK ça s'affiche bien.
Pour éviter de faire plein de requêtes, je stock ce texte de sortie dans une variable de session que je ré-affiche plus tard dans le cas d'un rechargement ou changement de page... et là c'est la cata ça m'affiche à nouveau des caractères bizarres.
Alors pourquoi ? C'est la question... en effet, quand je met à jour le contenu de la page en live, j'affiche directement le contenu de mon fichier via la variable de session fraichement créer, et ensuite, quand je fais un rechargement de page, c'est exactement cette même variable que j'utilise sauf que les accents ne passent plus...
Un peu de code si vous voyez pas le problème... Voici mon code de génération :
Citation : $chat = chatread($minichatlines); (routine qui lis un fichier particulier) |
Donc avec le php précédent, celui sur lequel xmlhttp fait un GET d'ailleurs, le résultat est récupéré et affiché via un
Citation : document.getElementById("chat-window" ).innerHTML = xmlhttp.responseText; |
Jusqu'ici aucun problème, les accents sont bien là ! Par contre, pour éviter de mettre à jour ce texte à chaque chargement de page, j'utilise cette variable de session que j'ai créé. Je la rappelle donc et l'inclus directement... et là c'est la cata !
Ca me dépasse Merci de vos idées !
PS : Au passage j'ai réussi à régler le problème en settant mon charset en UTF8 au niveau de ma page principale normale... mais est-ce vraiment une bonne solution ?
Marsh Posté le 18-07-2005 à 17:58:47
Salut,
beaucoup, sur beaucoup de forum ont des probleme avec XMLHTTPREQUEST pour les caractere scpeciaux (accents etc...)
Personne n'avais jusqu'alors trouvé de solutions (du moins j en ai pas trouvé apres des heures et des heures de navigation sur les forum js, XML etc... meme anglophone et germanophone)
Et bien je vous propose la/les solution(s)
La principale methode consiste a ne pas utiliser de champs :
et a utiliser la methode GET plutot que POST.
cela vous permettra de faire transiter les variables sans pertes des accents etc... et donc d'éventuellement stocker dans une BDD.
Pour le meme resultat vous pouvez aussi :
garder le champs et la methode POST mais faire escape() sur vos valeur puis rawurldecode() o moment de gérer la variable en PHP
Enfin :
le principal probleme arrive lors de l affichage des caracteres speciaux via XMLHTTPREQUEST. Il vous suffit alors de mettre:
dans votre page php... et ca marche
Voila je pense que je vais soulagé bcp bcp de monde avec ces 3 idées...
Si vous avez des questions n hesitez pas me contacter...
Shrito
Message édité par shrito le 18-07-2005 à 18:00:01