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

ASP.NET MVC Discussion :

Encodage de caractère dans une variable passée par POST


Sujet :

ASP.NET MVC

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Encodage de caractère dans une variable passée par POST
    Bonjour à tous

    Je rencontre un problème sur une appli développée en utilisant le framework MVC2 :

    Une appli tierce envoie sur une méthode d'un controller un fichier xml stocké dans un string, la méthode qui reçoit ce string est de cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [ValidateInput(false)]
    public string Import(string xml_file)
    {
    //traitement...
    }
    le fichier envoyé est sensé être encodé en ISO 8859-1, mais mon string "xml_file" comporte des erreurs au niveau des caractères spéciaux.

    J'ai tenté de jouer avec les conversions d'encodage sans succès

    Il me semble que le problème vienne du fait que par défaut, en dotnet, les string sont encodés en UNICODE, mais je ne vois aucun moyen de résoudre mon problème.

    Merci d'avance pour votre aide et n'hésitez pas à me demander + de précisions si je n'ai pas été clair.



    David.

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Bonjour,

    tu peux essayer qq chose comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var isoEncoding = System.Text.Encoding.GetEncoding("iso-8859-1");
    var encodedXML = HttpUtility.UrlEncode(xml_file, isoEncoding);

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse

    J'avais essayé de cette façon, mais cela ne fonctionne pas car en fait, dés la réception de mon fichier, l'information sur les caractères spéciaux est "perdue"
    (chaque caractère spécial est remplacé par le caractère 0x3f, correspondant à un caractère inconnu en UNICODE)

    J'ai trouvé un palliatif en ajoutant au web.config de l'application

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <globalization requestEncoding="iso-8859-1"/>
    Mais c'est un peu moche comme solution.

    Si quelqu'un trouve le moyen d'appliquer ce requestEncoding sur une seule méthode du controller, je prend

Discussions similaires

  1. escape le caractère $ dans une variable
    Par Exo dans le forum Langage
    Réponses: 3
    Dernier message: 08/10/2007, 13h00
  2. Réponses: 7
    Dernier message: 03/10/2007, 17h58
  3. stocké des caractères dans une variable
    Par joe370 dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/07/2007, 13h36
  4. [SQL] Comment utiliser dans une requête une variable passée par URL
    Par foffa dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 31/08/2006, 12h27

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