begin process at 2010 03 22 01:56:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Framework

 > 

Ajax

 > 

Mes accents ne passent pas en POST avec escape


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Mes accents ne passent pas en POST avec escape

mardi 26 juin 2007 à 17:54:54 | Mes accents ne passent pas en POST avec escape

guepard53

Hello à tous,

j'ai un petit souci avec l'utilisation d'AJAX et ASP.NET (C#) :

quand j'envoie des données au serveur en POST via AJAX, mes accents (notamment) ne passent pas et côté serveur, il n'y a rien à la place (pas de ?, ni le code %xx qui aurait dû remplacer l'accent suite à l'utilisation de la fonction escape)

si j'envoie les données en GET, je n'ai pas ce problème...

si ne n'utilise pas escape, j'ai bien mes accents côté serveur mais par contre, ça plante pour les caractères comme & qui sont interprétés... (d'où l'utilisation de escape)

J'ai essayé différents charset utf-8, ISO-machin, ... mais ça ne change rien.

Avez-vous déjà rencontré ce genre de problème ?


Voici mon code côté client :

parameters += "&var=" + escape("testé")

//ouverture de la page côté serveur via l'objet ajax
xmlHttp.open("POST","EmployeeDB.aspx",true);

//indication dans l'en-tête de la page qu'il y a des infos passées en POST
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

//ajout de la taille des paramètres envoyés en POST dans l'en-tête
xmlHttp.setRequestHeader("Content-length", parameters.length);

//envoi des paramètres en POST 
xmlHttp.send(parameters);



Et côté serveur, je récupère comme ceci (sVar contient 'test' sans l'é de fin et sans rien à la place, ni espace, ni autre):

string sVar = Request.Params["var"].ToString();

mercredi 27 juin 2007 à 05:48:18 | Re : Mes accents ne passent pas en POST avec escape

Arto_8000

Plusieurs possibilités : J'ai jamais utiliser, le content-length avec AJAX, je doute que ce soit utile et que cela change quelque chose à tes requêtes. À tu essayer sans, à tu essayé avec une autre chaîne du genre "requêtes" ? Le problème peut aussi être à cause du traitement que ASP. Net fait par défault sur tes paramètre GET et POST. Et dieux c'est qu'il en fait du traitement pour prendre autant de temps à générer des pages ...
mercredi 27 juin 2007 à 09:46:22 | Re : Mes accents ne passent pas en POST avec escape

guepard53

Yop Arto,

d'abord merci pour ta réponse. :-)

J'ai viré le content-length et ça fonctionne aussi sans en effet mais ça ne résoud pas mon problème.

Que veux-tu dire par "à tu essayé avec une autre chaîne du genre "requêtes" ?" ?
mercredi 27 juin 2007 à 19:30:12 | Re : Mes accents ne passent pas en POST avec escape

Arto_8000

Le content-length fait que le serveur arrête de lire le contenu après X caractère(s). Dans ta chaîne de test c'est le dernier caractère qui ne se rend pas au serveur. Donc, j'ai cru que c'était juste le dernier caractère qui était cropper et non les caractères avec des accents, d'oû "requêtes", car l'accent se trouve au milieu. Si le problème est seulement avec le content-length seulement "requête" va être lu par le serveur, s'il est avec l'accent seulement "requtes" va être lu par le serveur. Sinon j'ai l'impression que c'est "parametres.length + 1" que tu dois mettre pour le content-length au lieu de "parametres.length". J'ai une petite idée de pourquoi ASP aurait se comportement, mais c'est un peu complexe comme truc. C'est probablement à cause de fait que tout les chaines de caractère ont un byte null à la fin.
jeudi 28 juin 2007 à 09:15:50 | Re : Mes accents ne passent pas en POST avec escape

guepard53

Re :)

Ca ne vient de là, si je mets 12 accents au milieu de ce que j'envoie (teéèéééèèst), il reçoit test... On dirait qu'il n'aime pas les %xx qui sont générés par escape pour convertir les caractères spéciaux... :-/
jeudi 28 juin 2007 à 16:08:09 | Re : Mes accents ne passent pas en POST avec escape

Arto_8000

Dernier petit essaie pour comprendre, ta variable qui reçoit tes paramètres, elle est signé ou pas ? Un string signé ne peut prendre que les caractères ASCII de 0 à 127 et les accents se trouvent après le 127. Essaie en déclarant tes string non signé (unsigned)
jeudi 28 juin 2007 à 16:11:58 | Re : Mes accents ne passent pas en POST avec escape

guepard53

Re,

je doute que ce soit cela vu que tout passe bien sans faire un escape côté javascript.

Bon, je vais contourner en ne faisant pas d'escape mais en remplaçant les caractères qui pourraient poser problème (comme &) par le code correspondant (%26 pour &). En faisant comme ça, ça fonctionne mais j'trouve pas ça très propre. Donc si quelqu'un trouve une solution, je suis toujours preneur.

Merci Arto pour ton aide.

Tchuss
dimanche 1 juillet 2007 à 03:44:42 | Re : Mes accents ne passent pas en POST avec escape

DomJ

Bonjour, quand tu enregistres le fichier dans ton ordinateur, à "Codage" mets "UTF-8"
lundi 2 juillet 2007 à 09:11:16 | Re : Mes accents ne passent pas en POST avec escape

guepard53

Yop DomJ,

c'est le cas (j'ai aussi essayé d'autres formats pour voir si ça changeait quelque chose mais nada...).
lundi 23 février 2009 à 15:07:08 | Re : Mes accents ne passent pas en POST avec escape

logirard

Bonjour, J'ai le même soucis que toi. As-tu trouvé la solution ?

1 2

Cette discussion est classée dans : serveur, post, accents, escape, côté


Répondre à ce message

Sujets en rapport avec ce message

recharger automatiquement un fichier dans un iframe [ par Alerion ] Bonjour, j'ai un petit problème, auquel je n'ai pas trouvé de réponse,ExplicationJ'ai un petit serveurCe petit serveur met à jour un fichier texte à p Problème d'accents avec ajax dans le sens client --> serveur [ par roro06 ] Bonjour Je rencontre un problème d'accents en utilisant l'objet xmlhttprequest : les accents sont mal transmis vers le s comment envoyer un fichier XML au serveur? [ par DJkasanova ] Pour l'un de mes projets je souhaiterais envoyer au serveur grâce à la fonction XMLHttpRequest d'AJAX avec comme parametre de la fonction xhr.send(un Realiser un post-it compteur de vote [ par micka75014 ] Bonjour,J'aimerais realiser une post-it avec un compteur de voteje veux quelque chose qui resemble au post-it de digg.common intention est clairement redirection transparante [ par franco_se ] bonjoursvoila, j'ai un site propulsé par mediawiki sur un serveur ac une adresse du typeIP_SERVEUR/others/frank/wiki/index.php/Accueilet un nom de dom Select et message d'erreur [ par sterkasor ] Bonjourjai modifie mon formulaire d'enregistrement depuis je n'ai plus d'alert d'erreur pour le paysje pense que cela viens de textbox que je lai modi [DEPLACE]définir un temps entre chaque post ? [ par Loser ] Bonsoir,est ce que c'est possible de faire un système de temps entre chaque post ? (l'utilisateur devra attendre temps de minute avant de poster)le to envoyer coordonnée vers un liens ( vers le serveur) [ par Mastronic ] Bonjour, Suivant le script http://www.javascriptfr.com/codes/FONTION-POUR-CONNAITRE-POSITION-SOUS-FIREFOX-AINSI-IE_36734.aspx</a Envoyer des données javascript à un serveur [ par DMK04 ] Bonjour, Je débute un peu en développement web, et je suis bloqué (normal...).Reprenez moi si je me trompe, ou si je ne suis pas clair. Pour commenc problème modification javascript [ par yazworld ] Bonsoir à tous, Depuis un moment je travail sur une application de base de données qui dispose d'un module permettant un interfaçage web. Cette int


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales