IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Caractère accentué en ajax


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Par défaut [AJAX] Caractère accentué en ajax
    Bonjour tout le monde.

    J'ai un petit problème, j'ai réalisé un formulaire avec un traitement en ajax et derrière de l'asp 3.

    Voici une partie du code: (formulaire = mon form ;p)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    donnee = "question=" + encodeURI(formulaire.question.value)
    http_request.open('POST', url , true);
    http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    http_request.send(donnee);
    Les données récupérée sont envoyée par mail. Le problème est que les caractères accentué sont transformé en d'autre caractère.

    Genre le é = é

    J'ai essayé les codes asp suivant pour pouvoir avoir l'équivalence en html:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    question = replace(question, chr(232), "è" )
    question = replace(question, "%C3%C9", "è")
    Mais rien du tout fonctionne. C'est surement une bétise, mais je ne trouve pas

    Si vous avez une solution, dite le moi. Merci d'avance

  2. #2
    Membre expérimenté

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    donnee = "question=" + encodeURI(formulaire.question.value)
    http_request.open('POST', url , true);
    //~ Force l'encodage de la page...
    http_request.overrideMimeType('text/html; charset=ISO-8859-15');
    http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    http_request.send(donnee);
    J'avais le même problème aussi

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Soit, tu as une page utilisant un charset UTF-8 et derrière ton ASP utilise du ISO-8859-1 (ou un autre truc, genre CP-1250 si c'est sur Windows), soit c'est l'inverse.

    Essaie de définir exactement les charsets que tu utilises et à mon humble avis, tout ira mieux

    Dans ta page HTML, dans le <head></head> place ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=CP-1250">

  4. #4
    Membre expérimenté

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Par défaut
    Salut,

    Que tu est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=CP-1250">
    ou pas cela ne change rien, si tu ne défini pas de charset avant de passer la requête, c'est UTF-8 qui est selectionner et tu te retrouve donc avec des "é = é"


    Perso j'ai utilisé "overrideMimeType" et je n'ai plus de problèmes.

    @+

  5. #5
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Par défaut Merci pour l'aide
    Merci beaucoup pour votre aide, mais ca ne fonctionne pas

    J'avais déjà essayé cette solution et j'ai réessayé en verrifiant tout:

    Dans le javascript j'ai bien: http_request.overrideMimeType('text/html; charset=ISO-8859-1');

    Dans ma page asp: Response.charset="ISO-8859-1" (qui n'est pas obligatoire vu que c'est le charset par défaut chez moi)

    et le mail à bien l'encodage iso.

    Je pourrais faire une petite fonction pour transformer les caractères utf en iso. Mais je trouve cette solution lourde ;p surtout que (si j'ai bonne mémoire) il n'esite pas de fonction toute faite pour le faire.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Le problème se situe peut-être au niveau de l'envoi du mail.

    Pour vérifier cela, via ASP, lorsque tu reçois cette requête AJAX, écris le contenu du champ 'question' dans un fichier avec le même charset que celui que tu désires utiliser au final.

    Si le texte est bien écrit dans ce fichier après, c'est que le problème se situe au niveau de l'envoi du mail. Sinon, le problème se situe au niveau de la requête, lequel cas nous forcerait à trouver une autre solution JavaScript

  7. #7
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Par défaut
    J'ai pris comme solution, de remplacer les caractères utf avec une fonction ;p

    J'aime pas trop cette solution, mais c'etais la plus rapide à mon avis.

    Merci quand même pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Caractères accentués avec Ajax
    Par julieng31 dans le forum AJAX
    Réponses: 12
    Dernier message: 25/08/2009, 00h14
  2. [Ajax] Caractères spéciaux ?
    Par DoUPod dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 10/03/2009, 18h32
  3. [AJAX] AJAX et les accents
    Par titioux dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/04/2008, 10h06
  4. [AJAX] Caractère spéciaux php/ajax.
    Par Empty_body dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/07/2007, 10h01
  5. [AJAX] Caractères bizarres avec AJAX
    Par davinout dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 02/04/2007, 22h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo