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

jQuery Discussion :

jQuery & caractères spéciaux sur Internet Explorer


Sujet :

jQuery

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut jQuery & caractères spéciaux sur Internet Explorer
    Salux !

    Petit pépin avec Internet Explorer (et lui seul, je n'ai ce problème ni sur Fx ni sur Chrome) lorsque je veux faire un appel Ajax pour transmettre des données saisies dans un formulaire : les accents ne passent pas. Exemple, "éé" est envoyé "éé".

    Le charset de page est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta charset="ISO-8859-1" />
    L'appel Ajax (allégé pour faciliter la lecture) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $.ajax({
    	url: 'toto',
    	data: {
    		[...]
    		c_fond: $('[data-ligne-id='+ligne_cmde+'] input[name=c_fond]').val(),
    		[...]
    	},
    	type: 'post',
    	success: function(data) {
    		[...]
    	}
    });
    Dans la console IE, quand je fais $('[data-ligne-id=13] input[name=c_fond]').val() j'obtiens bien "éé".

    Avec l'outil de profilage réseau (toujours sur IE) j'obtiens ça dans le corps de message (extrait) :
    Je suspecte donc un problème au niveau de mon appel jQuery, mais à vrai dire je ne suis sûr de rien. J'ai vu passer des choses sur Google autour de l'URL, des méthodes GET, mais là ce n'est pas mon problème : les données sont mal transmises lors d'un appel POST.

    Une idée ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    tes fichiers sont en quel charset ?
    ton serveur delivre quel charset ?
    ta base ? ...

    Perso je passe tout en utf8
    http://j-willette.developpez.com/tut...-site-en-utf8/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    J'ai essayé un jour de mettre en UTF-8, mais ça a vite tourné à la catastrophe alors pour être honnête, je n'ai pas creusé plus.

    Par contre, je ne pense pas que ça vienne du serveur, puisque de ce que j'ai vu IE m'indique clairement ne pas transmettre ce que $.val() retourne (ou alors l'inspecteur d'IE débloque totalement, ce qui ne serait pas une première).

    Je me demandais s'il y avait un réglage particulier au niveau de jQuery que j'aurais zappé.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    un header charset à tes requetes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     beforeSend: function( xhr ) {
        xhr.overrideMimeType( 'text/plain; charset=x-user-defined' );
      },
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Ça démarre mal, cette fonction n'existe pas sur IE...

    Vu que je développe en Java (WebSphere), est-ce qu'il y a un moyen d'intercepter directement en amont (par ex, un filtre ?) et de réencoder à la volée les paramètres transmis ? (j'imagine qu'il faudrait que j'ouvre un thread séparé pour ça...)

    Sinon j'ai essayé de changer le charset en UTF-8, il n'y a pas de différence...

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Sinon j'ai essayé de changer le charset en UTF-8, il n'y a pas de différence
    où ça ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Dans le meta.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut

    change le charset du fichier lui même , pas juste le meta

    ex: dans notepad ouvre le fichier puis menu>encodage> convertir ...

    puis enregistrer
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Oui mais...

    ... Le problème est qu'IE envoie mal les accents saisis dans un champ type=text que j'ai saisis...


    (ou j'ai zappé un épisode avec la gestion des encodages, ce qui est tout à fait possible)

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    acceptCharset dans le form ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2009
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 277
    Par défaut
    Salux !

    Finalement j'ai trouvé la solution, dans l'ordre :

    Ajouter cette ligne au début des méthodes doPost & doGet des servlets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setCharacterEncoding("UTF-8");
    Et en en-tête des JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    J'avais tout en ISO-8859-1, j'ai du "précipiter" la migration UTF-8 maintenant, tout fonctionne (même sur IE7, c'est un miracle !)

    Merci en tous cas d'avoir eu la patience de m'aider

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2013, 15h48
  2. Votre avis sur "Internet Explorer 7"
    Par winow dans le forum IE
    Réponses: 6
    Dernier message: 12/03/2007, 17h59
  3. [XHTML] Problème affichage différent sur Internet Explorer et FireFox
    Par espaladito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/09/2006, 18h05
  4. lien marche sur internet explorer et non sur autre
    Par xman_genius dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2006, 18h11
  5. EXTENSIONS XML, XSL, XSLT, sur internet explorer 6 pack 2
    Par superjeanpi dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 08/12/2004, 12h11

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