caractères spéciaux en javascript - HTML/CSS - Programmation
Marsh Posté le 28-09-2006 à 22:57:02
http://www.pyrat.net/JavaScript-alert-et-accents.html
http://www.pjb.com.au/comp/diacritics.html
Merci google
Marsh Posté le 29-09-2006 à 10:44:23
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..
Marsh Posté le 29-09-2006 à 11:08:10
Faudrait peut être que tu arrête la drogue hein
J'ai testé et ça marche
Code :
|
Marsh Posté le 29-09-2006 à 11:43:49
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.
Marsh Posté le 29-09-2006 à 11:53:56
paowz a écrit :
|
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
Marsh Posté le 29-09-2006 à 12:02:46
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.
Marsh Posté le 29-09-2006 à 12:13:05
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é ?
Marsh Posté le 29-09-2006 à 12:40:41
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
Marsh Posté le 29-09-2006 à 12:43:10
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.
Marsh Posté le 29-09-2006 à 12:44:21
ReplyMarsh Posté le 29-09-2006 à 13:52:10
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. |
gatsu35 a écrit : Mais il me semblait que xmlHttpRequest ne travaillait qu'avec de l'UTF8 |
Vous avez tous les deux raisons
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 :
|
Marsh Posté le 29-09-2006 à 14:26:40
jusqu'a présent, j'ai toujours utilisé xmlHttpRequest en responseXML. J'ignirais qu'il y avait cette limitation avec le responseText.
Marsh Posté le 30-09-2006 à 13:41:50
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..
Marsh Posté le 01-10-2006 à 22:18:41
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 :
|
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.
Marsh Posté le 02-10-2006 à 09:41:46
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.
Marsh Posté le 02-10-2006 à 09:48:08
paowz a écrit : La première se trouve ici, dans le résultat renvoyé au navigateur.
|
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
http://www.w3schools.com/xml/xml_encoding.asp
Cdt.[/quotemsg]
Marsh Posté le 02-10-2006 à 13:54:13
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 |
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
Marsh Posté le 02-10-2006 à 13:57:45
t'as juste à rajouter l'attribut encoding dans la première ligne
Marsh Posté le 02-10-2006 à 15:14:58
ok... donc, il s'agit bien de texte, qui renvoyé grâce responseXML, fournit du DOM parsable..
oki
Marsh Posté le 02-10-2006 à 23:51:00
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 :
|
Mais je vois pas ce qui cloche... les navigateurs sont-ils si exigeants sur la syntaxe du xml ?
Merci bien
Marsh Posté le 03-10-2006 à 09:14:26
ben, j'ai essayé de rajouter:
Code :
|
mais que dalle... :-/
Marsh Posté le 03-10-2006 à 09:49:34
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
Marsh Posté le 03-10-2006 à 10:48:27
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 :
|
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
Marsh Posté le 03-10-2006 à 11:07:35
bon ... ça a l'air correct
fais péter ton php maintenant ( le code pas le retour)
Marsh Posté le 03-10-2006 à 11:13:53
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?
Marsh Posté le 03-10-2006 à 11:22:51
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 :
|
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
Marsh Posté le 03-10-2006 à 11:33:12
pas sur que ça soit que ça mais en tout cas ça aide pas:
Code :
|
Marsh Posté le 03-10-2006 à 11:40:42
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
Marsh Posté le 03-10-2006 à 11:46:45
j'étais juste scéptique sur l'utilisation des " dans l'adresse du fichier php !!!
Marsh Posté le 03-10-2006 à 11:47:41
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.
Marsh Posté le 03-10-2006 à 11:48:27
en appelant directement
http://wallofsound.free.fr/perso.php
j'obtiens
Code :
|
Marsh Posté le 03-10-2006 à 11:52:31
Citation : j'étais juste scéptique sur l'utilisation des " 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"? |
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
Marsh Posté le 03-10-2006 à 11:53:08
paowz a écrit : en appelant directement
|
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 :
|
Marsh Posté le 03-10-2006 à 11:55:02
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.
Marsh Posté le 28-09-2006 à 19:08:08
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..