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

Apache Discussion :

Problème encodage des données POST lues


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 60
    Points
    60
    Par défaut Problème encodage des données POST lues
    Bonjour à tous,

    Je développe un module Apache sensé lire le contenu POST d'une requête (du XML), parser le contenu (faire un traitement métier) et renvoyer une réponse. Tout fonctionnait bien en locale (je m'envoyer les données à l'aide de la commande wget et d'un fichier contenant les données "post").

    L'application cliente est maintenant connectée et là en lisant les données POST, je reçois des choses bizard notamment avec des % (ce qui empeche les données XML d'être parser correctement par l'expression regulière...)

    Exemple :

    %3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3C...
    J'ai l'impression que je lis une entrée en UTF-8 alors que mon programme s'attend à recevoir de l'ASCII.

    Pour info, j'utilise la méthode ap_get_client_block(r, buffer, 1024) fourni par Apache et buffer est déclaré en tel quel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char buffer[1024];
    J'ai essayé de jouer avec la fonction setlocale de C et de positionner la variable LANG à fr_FR.UTF-8 mais en vain...

    Je cherche à configurer Apache pour lire directement de l'UTF-8 mais en vain. J'ai vue qu'il exister des fonctions tel que AddDefaultCharset mais j'ai l'impression que cela n'a pas d'effet.

    Si quelqu'un à une ou plusieurs piste, je suis preneur...

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Si tu veux forcer l'utilisation de l'ISO-8859-1 par exemple, il faut que tu modifies l'encodage de la page qui permet d'envoyer les données au serveur (par exemple en ajouter par exemple <meta http-equiv="Content-Type" content="text/html; ISO-8859-1"> dans le HEAD de la page où figure le formulaire d'envoi), mais cela ne résoudra pas ton pb car le navigateur continuera à coder les < et les > par leur code ASCII %3C, voire même &lt;. Ca, c'est du standard HMTL, tu peux pas lutter.

    Du coup, la vraie solution consiste à d'abord "URL-désencoder" les données que tu reçois avant de faire ton traitement. Je ne sais pas s'il existe une API standard Apache ou autre pour faire ça.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Merci pour ta réponse.

    Pour info, les données ne me sont pas envoyer par une page web mais par une appli (qui n'a jamais accepté de faire du webservice )...

    Je vais me replonger dans l'API Apache...

Discussions similaires

  1. [MySQL] Récuperer des données POST qui ne possedent pas de nom de variable
    Par ArnaudD dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 23/06/2006, 17h22
  2. encodage des données lors du post en AJAX
    Par jibouze dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 19/04/2006, 21h26
  3. Envoyer des données POST à une page !
    Par wishmastah dans le forum Langage
    Réponses: 11
    Dernier message: 11/04/2006, 19h37
  4. Réponses: 6
    Dernier message: 15/02/2006, 14h02
  5. Récupérer des données postés
    Par doudoustephane dans le forum Langage
    Réponses: 2
    Dernier message: 02/11/2005, 22h11

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