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 :

Convert.FromBase64(chaine) Invalid Length Char Array


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 113
    Par défaut Convert.FromBase64(chaine) Invalid Length Char Array
    salut,
    Depuis un bon bout de temps j'ai une erreur qui reste sans solution! même après écumage du web!!

    Lors d'un transfert de fichier avec socket,
    j'envoie dans entêtes xml, une chaine encodé en base 64.

    Lors de la réception de cette chaine, je dois cette fois-ci convertir la chaine en base 64 en tableau de byte à l'aide de la fonction Convert.FromBase64(chaine),
    malheureusement pour moi:

    Si chaine % 4!=0
    alors il me jette une exception System.format.exception Invalid Length Char Array

    Sur le web après pas mal de recherche j'ai trouvé des personnes disant d'ajouter des "=" à la fin (maximum 3 en fonction du résultat du modulo %4)

    Il se trouve que cette solution ne marche que pour 2 "=", donc si la chaine en nécessite 3, cette fois il me jette une autre belle erreur, qui est invalid character!!!!

    Bref quelqun aurait une méthode même un peu sale pour contourner ce problème?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    tu ne devrais jamais avoir besoin de 3 caractères de padding, pour la raison expliquée ici : http://fr.wikipedia.org/wiki/Base_64
    Si c'est le cas, c'est que l'encodage est foireux à l'origine...

Discussions similaires

  1. ORA-24373 : invalid length specified for statement
    Par fa_say dans le forum Oracle
    Réponses: 2
    Dernier message: 19/11/2005, 14h16
  2. Réponses: 14
    Dernier message: 18/11/2005, 14h06
  3. Pb Invalid Conversion "char" to "char*"
    Par kazarn dans le forum C++
    Réponses: 3
    Dernier message: 02/03/2005, 13h24
  4. Réponses: 2
    Dernier message: 01/07/2004, 11h36
  5. Réponses: 6
    Dernier message: 24/03/2003, 17h11

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