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

C# Discussion :

Problème de décodage de string [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut Problème de décodage de string
    Bonjour à tous,

    Je fais face à un problème de "débutant" face à un soucis d'encodage.
    En appelant un service web, je récupère un flux XML sous forme de base64.

    Je convertis/décode cette base64 vers une string, et là, les cartères comme '?' et les accents ne sont pas décodés.

    Voici un exemple de ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <SERVUSER>Développement</SERVUSER>
    Au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <SERVUSER>Développement</SERVUSER>
    Voici comment je décode mon XML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     byte[] encodedDataAsBytes = System.Convert.FromBase64String(s1);
    textBox2.Text = Encoding.GetEncoding("iso-8859-1").GetString(encodedDataAsBytes, 0, encodedDataAsBytes.Length);
    J'ai éssayé d'autres encodage et rien n'y fait, le résultat est toujours le même, j'avoue ne pas comprendre.

    Auriez vous quelques pistes ?

    Je vous remercie

    Bien cordialement,

    Nixeus

  2. #2
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Salut,

    J'ai ce code qui fonctionnait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    try
        {
            System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();  
            System.Text.Decoder utf8Decode = encoder.GetDecoder();
     
            byte[] todecode_byte = Convert.FromBase64String(s1);
            int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);    
            char[] decoded_char = new char[charCount];
            utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);                   
            string result = new String(decoded_char);
            return result;
        }
        catch(Exception e)
        {
            throw new Exception("Error in base64Decode" + e.Message);
        }

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Bonjour et merci de ta réponse, malheureusement le résultat est la même

  4. #4
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    En regardant rapidement j'ai vu qu'il existait la méthode statique Convert.FromBase64String() (.Net 4 peut aussi le 3.5). Est ce que cela te donne la même chose ?

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Oui, cela me donne la même chose

  6. #6
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    est tu sure que le message original est bon ? tu peut le récupérer et le décoder par notepad++ pour voir car la c'est assez bizzar

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

Discussions similaires

  1. [Réseau]Problème de décodage de caractère
    Par addack dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 01/12/2005, 11h09
  2. Problème de copie de string dans string
    Par kazarn dans le forum SL & STL
    Réponses: 17
    Dernier message: 15/03/2005, 18h35
  3. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  4. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42
  5. [TFileStream] Problème de lecture de string
    Par Pedro dans le forum Langage
    Réponses: 6
    Dernier message: 28/06/2004, 13h06

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