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 :

Requête Ajax et charset ISO-8859-1 [AJAX]


Sujet :

jQuery

  1. #1
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut Requête Ajax et charset ISO-8859-1
    Bonjour,

    En voulant transposer un code Javascript au site developpez.com pour faire un exemple dans un billet de blog, j'en rencontré un problème d'encodage que je n'arrive à pas à résoudre.


    Dans le cas de developpez.com :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var selecttorContent= '.content';
      $.ajax({
        url: 'http://www.developpez.com/actu/97095/Windows-10-Microsoft-travaille-sur-une-refonte-de-File-Explorer-son-utilitaire-de-gestion-de-fichiers/',
        type: 'GET',
        async: false,
        success: function (data) {
           console.log($(data).find(selecttorContent).html());
        }
      });
    Les accents ne sont pas affichés correctement en console. (Lancé depuis la page d’accueil de developpez.com ou la page d'actualité concerné)
    Citation Envoyé par Extrait
    L�objectif de l�explorateur de fichiers Fi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var selecttorContent= ''#entry_text_1242';
      $.ajax({
        url: 'http://www.developpez.net/forums/blogs/863457-autran/b1242/migration-dobjets-metier-java-vers-javascript/',
        type: 'GET',
        async: false,
        success: function (data) {
            console.log($(data).find(selecttorContent).html());
        }
      });
    console.log(remote);
    Dans ce cas les accents sont correctement affichés en console. (Lancé depuis une page du forum ou depuis le billet de blog concerné)
    Citation Envoyé par Extrait
    On remarque que les règles de passage de Java à JavaScript semblent assez simples si on accepte quelques petites entorses aux règles strictes de l'objet et notamment l'encapsulation grâce aux mentions de protection. En effet, en Java les propriétés sont <span style="font-family: monospace; padding: 2px; background: #eee">privates</span>et donc seulement accessibles au travers de getter et setter. Tandis qu'en JavaScript
    Dans les deux cas, la page d'arrivé et de départ son déclarée en ISO-8859-1. je suis certains qu'il y a un problème d'encodage, mais je n'arrive pas à identifier.
    J'ai testé un peu toutes les "solutions" à ce problème que j'ai pu trouve, mais aucune ne fonctionne.

    Si vous avez une idée de la cause du problème et pourquoi celui-ci est présent sur developpez.com mais pas sur developpez.net

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu peux spécifier l'encodage dans le paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1"
    http://api.jquery.com/jquery.ajax/

    A+.

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Cela fait partie des solutions déjà testées.
    Par acquis de conscience, j'ai refait le test avec ce paramètre (et quelques variante). Toujours le même problème d'encodage.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Uh, c'est vicelard comme situation.

    La différence, c'est que l'une des pages envoie le header "Content-Type: text/html; charset=iso-8859-1" et donc jQuery sait comment la décoder. Et l'autre page le header "Content-Type: text/html" sans charset et donc jQuery utilise celui par défaut recommandé, pas le bon donc.

    Je ne sais pas comment convaincre jQuery de faire autrement, mais en utilisant XMLHttpRequest c'est tout simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var selecttorContent= '.content';
    var xhr = new XMLHttpRequest();
    xhr.overrideMimeType("text/html; charset=iso-8859-1");
    xhr.addEventListener("load", function (e) {
           console.log($(xhr.response).find(selecttorContent).html());
        });
    xhr.open("GET", 'http://www.developpez.com/actu/97095/Windows-10-Microsoft-travaille-sur-une-refonte-de-File-Explorer-son-utilitaire-de-gestion-de-fichiers/');
    xhr.send();
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Merci pour cette analyse ! je me doutais que c'était un truc tordu dans le genre
    Je prends ta solution ! N'étant pas spécialement intéressé par l'utilisation de JQuery, tant que ça marche

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,

    @thelvin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      beforeSend: function( xhr ) {
        xhr.overrideMimeType( "text/plain; charset=iso-8859-1" );
      }
    A+.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 576
    Par défaut
    Merci

    Entre-temps on m'a soufflé dans l'oreillette que jQuery a un truc fait directement pour ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mimeType: 'text/html; charset=ISO-8859-1',
    Ça a l'air de marcher.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. ASP.NET CHARSET UTF-8 iso-8859-1
    Par hottnikks_79 dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/07/2009, 16h10
  2. Réponses: 0
    Dernier message: 05/06/2009, 12h04
  3. BLOB mysql en charset iso-8859-15
    Par horkets dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 09/12/2008, 17h23
  4. [HTML] utf8 et charset=ISO-8859-1 corriger mois si je me trompe
    Par pierrot10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 05/04/2008, 10h57

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