C # Convertir un Base64 -> octet []


93

J'ai un Base64 byte[]tableau qui est transféré à partir d'un flux dont j'ai besoin pour le convertir en un tableau normal byte[]comment faire cela?


Qu'est-ce qu'un "Base64 byte[]"? Dans quel encodage est-il?
SLaks

2
pouvez-vous mettre le code ici?
Fereydoon Barikzehy

Ouais, je ne pense pas que vous ayez un Base64 byte[]. Si c'est au format Base64, c'est une chaîne.
vapcguy

Réponses:


167

Vous devez utiliser Convert.FromBase64String pour transformer un Base64 encodé stringen un fichierbyte[] .


3
j'ai besoin byte[] - > byte[] | cette méthode estbyte[] -> string
Sudantha

4
Base64 est toujours du texte ascii. Alors faites d' Encoding.ASCII.GetString(base64arr)abord.
Nyerguds

3
Il y a maintenant un Convert.FromBase64CharArray.
Lee Louviere

41

Cela peut être utile

byte[] bytes = System.Convert.FromBase64String(stringInBase64);

7

Essayer

byte[] incomingByteArray = receive...; // This is your Base64-encoded bute[]

byte[] decodedByteArray =Convert.FromBase64String (Encoding.ASCII.GetString (incomingByteArray)); 
// This work because all Base64-encoding is done with pure ASCII characters

3

Vous recherchez la FromBase64Transformclasse, utilisée avec la CryptoStreamclasse.

Si vous avez une chaîne, vous pouvez également appeler Convert.FromBase64String.


3

J'ai écrit une méthode d'extension à cet effet:

public static byte[] FromBase64Bytes(this byte[] base64Bytes)
{
    string base64String = Encoding.UTF8.GetString(base64Bytes, 0, base64Bytes.Length);
    return Convert.FromBase64String(base64String);
}

Appelez ça comme ça:

byte[] base64Bytes = .......
byte[] regularBytes = base64Bytes.FromBase64Bytes();

J'espère que cela aide quelqu'un.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.