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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  caractères spéciaux en javascript

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

caractères spéciaux en javascript

n°1449030
paowz
Posté le 28-09-2006 à 19:08:08  profilanswer
 


Bonjour,
 
Lorsque je cherche à afficher du texte dans 'alert()' en javascript, il me remplace tous les caractères accentués par le caractère ?
J'ai essayé d'utiliser le formattage spécial du style é ou é mais il m'affiche ces chaînes telles quelles.
 
Vous avez une idée?
 
Cdt,
 
 
PS: ces chaines proviennent d'un retour de fonction PHP exécuté à la sauce AJAX..
 

mood
Publicité
Posté le 28-09-2006 à 19:08:08  profilanswer
 

n°1449172
gebruik
Posté le 28-09-2006 à 22:20:01  profilanswer
 

Tu as précisé le codage ?

n°1449178
paowz
Posté le 28-09-2006 à 22:34:09  profilanswer
 

c'est-à-dire le "codage" ?

n°1449192
mIRROR
Chevreuillobolchévik
Posté le 28-09-2006 à 22:54:50  profilanswer
 

encoding charset toussa koi

n°1449194
gatsu35
Blablaté par Harko
Posté le 28-09-2006 à 22:57:02  profilanswer
 
n°1449408
paowz
Posté le 29-09-2006 à 10:44:23  profilanswer
 

merci bien mais aucune solution ne marche... ca m'affiche la chaîne telle quelle...\352 etc...
je lâche l'affaire, ca me gonfle, merci encore..

n°1449455
gatsu35
Blablaté par Harko
Posté le 29-09-2006 à 11:08:10  profilanswer
 

Faudrait peut être que tu arrête la drogue hein :o
 
J'ai testé et ça marche :o

Code :
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <script>
  6. alert('M\351nage \340 trois.')
  7. </script>
  8. </body>
  9. </html>

n°1449513
paowz
Posté le 29-09-2006 à 11:42:15  profilanswer
 

utf8_encode(), apparement, ca marcherait, en fait...

n°1449516
paowz
Posté le 29-09-2006 à 11:43:49  profilanswer
 

Citation :

Faudrait peut être que tu arrête la drogue hein


 
J'ai arrété, espèce de petit plaisantin :|
 
Et quand je dis que quelque chose ne marche pas, c'est qu'elle ne marche pas, même si ma description de l'erreur manque de précision.

n°1449535
gatsu35
Blablaté par Harko
Posté le 29-09-2006 à 11:53:56  profilanswer
 

paowz a écrit :

Citation :

Faudrait peut être que tu arrête la drogue hein


 
J'ai arrété, espèce de petit plaisantin :|
 
Et quand je dis que quelque chose ne marche pas, c'est qu'elle ne marche pas, même si ma description de l'erreur manque de précision.


Tu donnerais plus d'infos au lieu d'un ca marche pas, on pourrait t'aider.
Alors tu t'énerves pas et tu nous donnes les informations dont on a besoin pour t'aider

mood
Publicité
Posté le 29-09-2006 à 11:53:56  profilanswer
 

n°1449554
paowz
Posté le 29-09-2006 à 12:02:46  profilanswer
 

Citation :

Alors tu t'énerves pas et tu nous donnes les informations dont on a besoin pour t'aider


 
là, c'est toi qui t'énerve, non?
 
les infos, elles sont dans le premier post.
Il s'agit d'afficher du contenu en provenance d'action AJAX. Ton exemple marche forcément mais ne s'applique pas à mon cas.
En encodant en UTF8 ce qui semblerait être de l'iso-8851.. là ca marche.

n°1449570
gatsu35
Blablaté par Harko
Posté le 29-09-2006 à 12:13:05  profilanswer
 

Passer ta page en UTF8 ne répond pas entièrement à la question
Car là tu mets des accents dans les alerts.
 
Tu pourrais quand même nous préciser ce qui ne fonctionnait pas dans ce que tu faisais.
tu as testé mon code ?
tu as fait quoi de ton coté ?


Message édité par gatsu35 le 29-09-2006 à 12:27:43
n°1449591
paowz
Posté le 29-09-2006 à 12:40:41  profilanswer
 

Honnêtement, je ne vois pas très bien ce qui cloche.
J'ai l'impression que lorsqu'on fait des requêtes async avec AJAX et que celles-ci attaquent la base de données, les données n'ont pas le même charset que si elles étaient fournies au moyen d'un submit..
le workaround que j'ai trouvé est d'encoder en UTF8 ce qui semble être de l'iso-8851.
Ca marche comme ca pour ce que j'ai fait, mais je ne saurais pas t'expliquer le pourquoi du comment...
Pour moi, ca vient du coté client.. je suis sous firefox, est-ce que firefox réagit différement que IE en ce qui concerne AJAX et les charsets..
Je ne sais pas..
Ca fait beaucoup de paramètres et il en devient difficile de 'diagnostiquer' l'origine du problème...
Tout ce que je sais, c'est que le serveur ne traite pas les données avec le même charset lorsqu'elles viennent d'une procédure AJAX (attention, qd je dis "je sais", c'est sur la base de ce que je constate..)
 
voila :)

n°1449595
omega2
Posté le 29-09-2006 à 12:43:10  profilanswer
 

Si tu veux faire de l'ajax, il faut que tous les envoies vers le navigateur se fassent avec le même charset que celui de la page.
Sinon, t'auras toutes les chances que ca se passe mal et je paris que c'était ton probléme.

n°1449596
gatsu35
Blablaté par Harko
Posté le 29-09-2006 à 12:44:21  profilanswer
 

Mais il me semblait que xmlHttpRequest ne travaillait qu'avec de l'UTF8

n°1449629
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-09-2006 à 13:52:10  profilanswer
 

omega2 a écrit :

Si tu veux faire de l'ajax, il faut que tous les envoies vers le navigateur se fassent avec le même charset que celui de la page.
Sinon, t'auras toutes les chances que ca se passe mal et je paris que c'était ton probléme.


gatsu35 a écrit :

Mais il me semblait que xmlHttpRequest ne travaillait qu'avec de l'UTF8


Vous avez tous les deux raisons :o
 
En fait sur les retour du xmlHttpRequest il y a deux solutions:
- utiliser responseText, et là pas de choix c'est forcément renvoyé en UTF-8
- utiliser responseXML, et là il est possible de spécifier l'encodage du flux retourner en mettant dans l'entête:

Code :
  1. <?xml version="1.0" encoding="SkeTuVeux" standalone="yes"?>


Message édité par anapajari le 29-09-2006 à 13:52:43
n°1449661
omega2
Posté le 29-09-2006 à 14:26:40  profilanswer
 

jusqu'a présent, j'ai toujours utilisé xmlHttpRequest en responseXML. J'ignirais qu'il y avait cette limitation avec le responseText.

n°1450133
paowz
Posté le 30-09-2006 à 13:41:50  profilanswer
 

Ah, ben moi, c'est l'inverse, j'ai toujours utilisé la version responseText.
J'étudierai responseXML et les méthodes associées, lors du prochain site.. :)

n°1450539
paowz
Posté le 01-10-2006 à 22:18:41  profilanswer
 

Re.
 
Bon finalement, cette histoire de XML dans Ajax, la curiosité m'y poussant, ca finit par m'interesser...
Ca a l'air en effet, plus puissant d'utiliser responseXML que responseText.
 
J'ai lu cette page:
 
http://www.ajaxtutorial.net/index. [...] sponsexml/
 
Mais deux choses m'échappent.
 
La première se trouve ici, dans le résultat renvoyé au navigateur.
 

Code :
  1. < ?xml version="1.0"?>
  2. <user>
  3.   <name>stuart</name>
  4.   <email>stuartc1@hotmail.com</email>
  5.   <random>0.98789</random>
  6. </user>


 
Question: Nul part dans le source javascript ou html, il est fait référence au noeud root user, d'ou vient-il, ce noeud? quand est-ce qu'il a été défini ?
 
Question 2: Comment je peux spécifier l'encodage de responseXML, pour la passer en ISO-8851.. puisqu'il ne s'agit pas d'une concaténation de chaînes ?
 
Cdt.

Message cité 1 fois
Message édité par paowz le 01-10-2006 à 22:25:13
n°1450609
omega2
Posté le 02-10-2006 à 09:41:46  profilanswer
 

En général, quand on utilise des documents XMl, on a tendance à ne pas se préoccuper de l'élément racine.
En regardant vite fait leur code, pour accéder au noeud racine, le noeud "user" dans le cas présent, ils ont utilisé "http.responseXML.documentElement".
Personellement, pour mon site, j'avais utilisé "http.responseXML.lastChild" mais ca revient exactement au même vu qu'il ne peut y avoir qu'un seul élément racine dans un fichier XML.
 
EDIT : Pour ta seconde question, regarde la réponse d'anapajari. ;)


Message édité par omega2 le 02-10-2006 à 09:42:41
n°1450616
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-10-2006 à 09:48:08  profilanswer
 

paowz a écrit :

La première se trouve ici, dans le résultat renvoyé au navigateur.

Code :
  1. < ?xml version="1.0"?>
  2. <user>
  3.   <name>stuart</name>
  4.   <email>stuartc1@hotmail.com</email>
  5.   <random>0.98789</random>
  6. </user>


Question: Nul part dans le source javascript ou html, il est fait référence au noeud root user, d'ou vient-il, ce noeud? quand est-ce qu'il a été défini ?


C'est le rootNode du flux retourné, de manière générale ça peut être n'importe quoi. Mais c'est "généré" par le serveur et dans le tutorial que tu montres il n'y a pas le code serveur ( ou alors je l'ai pas vu mais je n'ai fait que le survoler).
 

paowz a écrit :

Question 2: Comment je peux spécifier l'encodage de responseXML, pour la passer en ISO-8851.. puisqu'il ne s'agit pas d'une concaténation de chaînes ?


Je te l'ai dit plus haut :o
http://www.w3schools.com/xml/xml_encoding.asp  
 
Cdt.[/quotemsg]

n°1450764
paowz
Posté le 02-10-2006 à 13:54:13  profilanswer
 

okay, donc ne pas se préoccuper du noeud racine... ce qui veut dire qu'on peut ne pas connaitre le nom de ce noeud, ca n'a pas d'importance...
 
 

Citation :

Je te l'ai dit plus haut :o


 
Justement, c'est ca que je comprends pas.. A quel moment, tu définis le header xml ? c'est une méthode de l'objet xmlhttpRequest?
ou bien, c'est un script php dans lequel tu demandes un renvoi à la forme xml d'un contenu et c'est le fait de faire une requête AJAX en mode responseXML au lieu de responseText qui fait que le navigateur y verra un doc DOM au lieu de simple texte ?
 
Merci :)
 
 
 
 

n°1450768
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-10-2006 à 13:57:45  profilanswer
 

t'as juste à rajouter l'attribut encoding dans la première ligne [:spamafote]

n°1450832
paowz
Posté le 02-10-2006 à 15:14:58  profilanswer
 

ok... donc, il s'agit bien de texte, qui renvoyé grâce responseXML, fournit du DOM parsable..
 oki :)

n°1451127
paowz
Posté le 02-10-2006 à 23:51:00  profilanswer
 

Re-bonjour,
 
Dans la suite des événements, j'ai écrit un exemple dans lequel j'essaie de parser un fichier xml que je récupère depuis une procédure AJAX, mais j'obtiens une erreur du navigateur qui est:
"responseXML has no properties"
 
En gros, mon document xml renvoyé par le serveur doit être mal foutu :/
 
le voici (perso.php)
 

Code :
  1. <?
  2. $prenom=$_POST['prenom'];
  3. $nom=$_POST['nom'];
  4. $age=$_POST['age'];
  5. ?>
  6. <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
  7. <personne>
  8.   <prenom><? echo $prenom?></prenom>
  9.   <nom><? echo $nom ?></nom>
  10.   <age><? echo $age ?></age>
  11. </personne>


 
Mais je vois pas ce qui cloche... les navigateurs sont-ils si exigeants sur la syntaxe du xml ?
 
Merci bien :)

n°1451145
gatsu35
Blablaté par Harko
Posté le 03-10-2006 à 08:06:38  profilanswer
 

et le type mime en le forcant en XML ?

n°1451181
paowz
Posté le 03-10-2006 à 09:14:26  profilanswer
 

ben, j'ai essayé de rajouter:

Code :
  1. header("Content-type: text/xml" );


 
mais que dalle... :-/

n°1451196
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-10-2006 à 09:49:34  profilanswer
 

bin la il va nous falloir ton code javascript. A mon avis le flux xml retourné est correct mais c'est ton traitement qui merdouille

n°1451258
paowz
Posté le 03-10-2006 à 10:48:27  profilanswer
 

Alors pour le code Javascript, je fais rien de bien extraordinaire...
Dans ClbFunc(), j'essaie de lui faire afficher que c'est un objet DOM.

Code :
  1. //fonction qui envoie la requête
  2. function sendRequest(file,frm) {
  3.      var rnd = Math.random();
  4.      try{
  5.        
  6.         http.open('POST', file, true);       
  7.         http.setRequestHeader('Content-Type', "text/xml" );       
  8.         http.onreadystatechange = ClbFunc;
  9.       http.send(getForm(frm)+'&rnd='+rnd);   
  10.      }
  11.      catch(e){
  12.         alert(e);
  13.       }
  14.      finally{}
  15. }
  16. // fonction pour le changement d'état
  17. function ClbFunc(){   
  18.      try{
  19.            if((http.readyState == 4)&& (http.status == 200)){
  20.          alert(http.responseXML);
  21.           }                    
  22.       }
  23.      catch(e){
  24.               alert(e);
  25.       }
  26.      finally{}
  27.      
  28. }


 
A l'heure actuelle, il m'affiche null dans le alert au lieu de m'afficher [Object XMLDocument], comme sur l'exemple 4) de cette page:
http://www.dynamicdrive.com/dynami [...] outine.htm


Message édité par paowz le 03-10-2006 à 10:50:38
n°1451274
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-10-2006 à 11:07:35  profilanswer
 

bon ... ça a l'air correct :D
fais péter ton php maintenant ( le code pas le retour)

n°1451278
omega2
Posté le 03-10-2006 à 11:13:53  profilanswer
 

Avec > IE6, il faut recréer l'élément http à chaque utilisation. Ca n'a pas l'air d'être le cas ici au vu de ton code, alors rajoute le si ca n'est pas encore fait pour pas avoir de problémes plus tard. ;)
 
Sinon, pour le coup du null, je ne vois pas d'où ca vient. T'as une page de test sur internet qu'on puisse essayer de voir?

n°1451284
paowz
Posté le 03-10-2006 à 11:22:51  profilanswer
 

Citation :

Avec > IE6, il faut recréer l'élément http à chaque utilisation. Ca n'a pas l'air d'être le cas ici au vu de ton code, alors rajoute le si ca n'est pas encore fait pour pas avoir de problémes plus tard. ;)


 
pardon, j'ai oublié de kopikoler cette ligne:

Code :
  1. var http = createRequestObject();


 
Note: Je suis sous Firefox.
 

Citation :

fais péter ton php maintenant ( le code pas le retour)


Ben mon code, c'est celui que j'ai cité plus haut? non? quelle partie du code? celle qui génère la réponse XML ?
 
Vous pouvez jeter un oeil à cette adresse:
http://wallofsound.free.fr/
 
Merci bien :)


Message édité par paowz le 03-10-2006 à 11:26:53
n°1451295
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-10-2006 à 11:33:12  profilanswer
 

pas sur que ça soit que ça mais en tout cas ça aide pas:

Code :
  1. <input type="button" value="go" onclick="javascript:sendRequest(&quot;perso.php&quot;,this.form)"/>

n°1451304
paowz
Posté le 03-10-2006 à 11:40:42  profilanswer
 

c'est-à-dire ? :/
Pourtant l'événement onclick est bien généré, le fichier perso.php est bien "attaqué" et j'arrive bien dans ma fonction de retour avec l'apparition de alert


Message édité par paowz le 03-10-2006 à 11:43:08
n°1451314
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-10-2006 à 11:46:45  profilanswer
 

j'étais juste scéptique sur l'utilisation des &quot; dans l'adresse du fichier php !!!  

n°1451317
omega2
Posté le 03-10-2006 à 11:47:41  profilanswer
 

Heu, tu te rends comptes que tu demandes à firefox de récupérer le contenu du fichier situé à l'adresse "prenom=&nom=test&age=&rnd=0.7925991527191848"?
Ca serait peut être une bonne idée de lui donner l'adresse compléte vers le fichier plustôt que de lui demander de deviner comme IE quel fichier peut être demandé.
 
PS : Récupére toi l'extention "javascript debugger" pour firefox : http://www.hacksrus.com/~ginda/venkman/ Ca aide pas mal pour comprendre ce genre de cas.

n°1451320
paowz
Posté le 03-10-2006 à 11:48:27  profilanswer
 

en appelant directement
http://wallofsound.free.fr/perso.php
 
j'obtiens

Code :
  1. Parse error: syntax error, unexpected T_STRING in /mnt/121/sdc/2/2/wallofsound/perso.php on line 6

n°1451325
paowz
Posté le 03-10-2006 à 11:52:31  profilanswer
 

Citation :

j'étais juste scéptique sur l'utilisation des &quot; dans l'adresse du fichier php !!!  


 
Non, à priori, ca me permet d'aligner des ' en tant que délimiteurs dans un echo qui est délimité lui aussi par des '.
 

Citation :

Heu, tu te rends comptes que tu demandes à firefox de récupérer le contenu du fichier situé à l'adresse "prenom=&nom=test&age=&rnd=0.7925991527191848"?
Ca serait peut être une bonne idée de lui donner l'adresse compléte vers le fichier plustôt que de lui demander de deviner comme IE quel fichier peut être demandé.


 
Je suis en méthode POST et non en GET et avec le 'open()', justement j'ouvre une connexion sur 'perso.php'.
Tu crois qu'il vaudrait mieux que je spécifie le chemin complet ? ca me semble étrange.. :/
 

Citation :

Récupére toi l'extention "javascript debugger" pour firefox


J'y cours :)

Message cité 1 fois
Message édité par paowz le 03-10-2006 à 11:53:14
n°1451328
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-10-2006 à 11:53:08  profilanswer
 

paowz a écrit :

en appelant directement
http://wallofsound.free.fr/perso.php
 
j'obtiens

Code :
  1. Parse error: syntax error, unexpected T_STRING in /mnt/121/sdc/2/2/wallofsound/perso.php on line 6



normal tu lui balourdes un <? pour en-tête xml comment veux-tu qu'il s'en sorte vu que c'est aussi le tag php?
fait un echo de tout ton truc plutot!

Code :
  1. header("Content-type: text/xml" );
  2. echo '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
  3. <personne>
  4. <prenom>'.$prenom.'</prenom>
  5. <nom>'.$nom.'</nom>
  6. <age>'.$age.'</age>
  7. </personne>' ;


Message édité par anapajari le 03-10-2006 à 11:54:23
n°1451336
omega2
Posté le 03-10-2006 à 11:55:02  profilanswer
 

Heu, a la relecture du code on va dire : "oups, me suis planté".
De voir les paramettres comme ça, j'en ai oublié de regarder plus haut l'ouverture du fichier. :lol:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  caractères spéciaux en javascript

 

Sujets relatifs
[MySQL] Modifier 1 ou plusieurs caractères dans une bd?Outil pour convertir les caractères spéciaux
Infos IPTC de photos et caractères accentués ...Javascript: Fonction en paramètre
un éditeur WYSIWYG Javascript qui génère du XHTML ?Comment vider le cache d'IE via un javascript ?
extraire d'un texte les chaines de caractères qui...[Javascript] Confirm() sur un lien
[résolu] [Javascript] Alert et caractères spéciaux[PHP/MySQL/Javascript] Gérer les caractères spéciaux
Plus de sujets relatifs à : caractères spéciaux en javascript


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