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 :

Caractères spéciaux dans valeur de header HTTP [Encodage]


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut Caractères spéciaux dans valeur de header HTTP
    Bonjour,

    Je rencontre un problème lors d'appel d'un service GET, lorsque je remplis un header.
    J'ajoute un header nommé "libelle" et je le remplis avec la valeur d'un input possédant un accent.

    Lorsque je regarde l'appel de service, j'obtiens ça:

    libelle: Je suis un libellé

    si j'affiche la valeur de l'input dans la console j'ai bien "Je suis un libellé"

    Savez vous d'où peut venir le problème? Peut-on définir un encodage pour la valeur des headers? ma page est en UTF-8
    J'ai bien
    Content-Type Application/json; charset=UTF-8
    dans le header, mais apparemment sans effet

    Merci d'avance

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Ok, mais c'est bien ce que je semble avoir respecté. En tout cas je ne trouve pas de réponse supplémentaire dans ce tuto.

    la balise meta est ok (mon application est une SPA donc une page)
    le header content-type est rempli

    Passer par une méthode POST ne pose pas de problème au niveau du contenu, seuls les valeurs de headers ne fonctionnent pas sur des caractères spéciaux.

    Je ne suis pas en PHP mais bien en javascript/ajax (DOJO)

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    tu semble avoir raté un étape ...
    ton fichier est il en utf8 sans BOM ?
    ton serveur délivre-t-il de l'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 !

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Il ne s'agit pas d'un fichier, je suis au sein d'un document HTML en récupérant la valeur d'un input, ou alors il y a quelque chose que je ne comprends pas :s

    Mon serveur attend et délivre du UTF-8, normalement je peux en être sûr puisque pour du contenu POST c'est OK (il s'agit d'un serveur d'application java, WS exposé par Spring) et sans certains paramètres, j'ai le problème dans le POST.

    Vous pensez que ça vient de l'exposition du webservice, qui en plus de préciser qu'elle consomme et produit du UTF-8, doit faire la même précision pour les header?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Un header n'a pas le droit de contenir d'accent, pour quelque raison que ce soit.
    Rien, jamais, nada, niet.
    En principe les navigateurs devraient rejeter toute tentative d'en mettre, mais il me semble que ce n'est pas le cas.

    Il est possible que la chaîne d'outils que tu utilises, n'ait simplement pas prévu le cas, et que la raison pour laquelle le header n'est pas lu en UTF-8, est que rien ne soit prévu pour qu'il le soit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    je suis au sein d'un document HTML
    Ha ! Et donc ton document html n'est pas un fichier ?
    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 !

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    @SpaceFrog: ben étant donné que le lien de tuto qu'on m'a refilé fait la distinction entre un document HTML et un fichier, j'ai estimé que tu parlais de ça, donc non. Mais apparemment ce n'est pas le problème.

    Ok merci thelvin. Du coup, tout appel de service GET ne doit prévoir de passer des paramètres uniquement dans l'URL (pathVariable)?
    Je préférais éviter car je pensais que c'est dans ces cas là qu'on pouvait rencontrer des problèmes de caractère..

    Je coup je pense privilégier des POST dans la plupart des cas alors !

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par oni13 Voir le message
    Ok merci thelvin. Du coup, tout appel de service GET ne doit prévoir de passer des paramètres uniquement dans l'URL (pathVariable)?
    Je préférais éviter car je pensais que c'est dans ces cas là qu'on pouvait rencontrer des problèmes de caractère..
    La manière de rencontrer des problèmes d'encodage, c'est écrire autre chose que de l'anglais simple. À toi de voir les risques que tu choisis de prendre ou pas.

    Au moins avec les paramètres de GET, il y a des nombreux efforts d'internationalisation et de faire marcher les choses.
    Avec les headers, ce n'est pas le cas. Il y a juste eu un truc pour le sujet des emails.

    Pour information, rien ne t'empêche de faire ton propre encodage, comme par exemple encoder le texte en octets avec UTF-8, et mettre le tout en Base64.
    Du coup c'est juste de l'ASCII, ça contient tout ce que tu veux, et tu n'auras jamais aucun problème d'encodage puisque tu gères la question toi-même.
    Mais c'est assez contraignant.

    Citation Envoyé par oni13 Voir le message
    Je coup je pense privilégier des POST dans la plupart des cas alors !
    Si c'est sous forme de x-www-form-urlencoded, ils ont leurs soucis aussi. Pas de magie.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 125
    Points : 98
    Points
    98
    Par défaut
    Au moins avec les paramètres de GET, il y a des nombreux efforts d'internationalisation et de faire marcher les choses.
    Tu veux dire qu'on ne rencontrera pas de problème en utilisant des paramètres GET?
    J'avais souvenir de voir apparaître des problèmes sur les espaces, accents etc.. peut-être que ça a évolué ou que ce n'est que sur les vieux navigateurs.

    J'avoue que j'avais pas pensé à encoder / décoder, mais je trouve ça peu propre.. ou plutôt j’espérais qu'il existe une solution native !

  11. #11
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par oni13 Voir le message
    Tu veux dire qu'on ne rencontrera pas de problème en utilisant des paramètres GET?
    Je veux dire qu'il y a une prise de conscience et que les gens travaillent pour qu'il y en ait moins, notamment avec les technologies plus récentes qui travaillent entre elles.
    Et que ce n'est pas le cas avec les headers.

    Ça ne veut pas dire que tu ne rencontreras pas de problème.
    Ça veut dire que tu en rencontreras moins qu'avant, et moins qu'en utilisant autre chose.
    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. [Mail] caractères spéciaux dans les headers
    Par Atharendil dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2008, 13h39
  2. Réponses: 3
    Dernier message: 26/11/2006, 21h05
  3. Réponses: 5
    Dernier message: 23/10/2005, 18h27
  4. caractère spéciaux dans nom de base
    Par slefevre01 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/08/2005, 17h41
  5. [XML] caractères spéciaux dans un type NMTOKEN
    Par norkius dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 08/09/2004, 14h30

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