Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1802 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  XMLHTTPREQUEST et caractere speciaux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

XMLHTTPREQUEST et caractere speciaux

n°1152824
shrito
Posté le 18-07-2005 à 17:58:47  profilanswer
 

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 :
 

Code :
  1. variable.setRequestHeader('Content-Type','application/x-www-form-urlencoded')


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:

Code :
  1. header('Content-Type: text/xml; charset=utf-8');


 
dans votre page php... et ca marche  :bounce:  
 
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
mood
Publicité
Posté le 18-07-2005 à 17:58:47  profilanswer
 

n°1152828
FlorentG
Unité de Masse
Posté le 18-07-2005 à 18:02:00  profilanswer
 

Moi je fous tout en utf-8 du début à la fin :) J'ai du coup résolu pas mal de choses...

n°1152836
shrito
Posté le 18-07-2005 à 18:10:30  profilanswer
 

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..

n°1152837
FlorentG
Unité de Masse
Posté le 18-07-2005 à 18:11:28  profilanswer
 

On peux pas faire :

variable.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');


:??: Ce serait logique :heink:

n°1152845
shrito
Posté le 18-07-2005 à 18:27:31  profilanswer
 

bah justement non... ca passe pas...

n°1159764
TigrouMeow
Vive le Rhum et les Gibsons ;)
Posté le 26-07-2005 à 08:43:33  profilanswer
 

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)
$_SESSION['minichattxt'] = $chat;
header('Content-Type: text/xml; charset=utf-8');
echo $chat;


 
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 ?


Message édité par TigrouMeow le 26-07-2005 à 08:52:04

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  XMLHTTPREQUEST et caractere speciaux

 

Sujets relatifs
XMLHTTPREQUEST[php] Enlever les balises html d'une chaine de caractère
Les accents dans uen chaine de caractèretransformation code HTML vers caractère chinois(UTF-8)
Comment choisir ses 'polices de caractère'?caractère final d'une chaine
Traduire un caractère en hexaconversion de caractère en date sous SQL server
remplacer une chaine de caractère dans un fichierEffecer caractere fichier texte
Plus de sujets relatifs à : XMLHTTPREQUEST et caractere speciaux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR