C # Перетворення Base64 -> байт []


93

У мене є Base64 byte[]масив, який передається з потоку, який мені потрібно перетворити в звичайний, byte[]як це зробити?


Що таке "Base64 byte[]"? У якому кодуванні це?
Слакс

2
Ви можете помістити код сюди?
Fereydoon Barikzehy

Так, я не думаю, що у вас є Base64 byte[]. Якщо це у форматі Base64, це рядок.
vapcguy

Відповіді:


168

Вам потрібно використовувати Convert.FromBase64String, щоб перетворити Base64, кодований stringв byte[].


3
мені потрібно byte[] - > byte[] | цей методbyte[] -> string
Суданта

5
Base64 - це завжди ascii-текст. Тож зробіть Encoding.ASCII.GetString(base64arr)спочатку.
Nyerguds

3
Зараз є Convert.FromBase64CharArray.
Lee Louviere


7

Спробуйте

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

Ви шукаєте FromBase64Transformклас, який використовується разом із CryptoStreamкласом.

Якщо у вас є рядок, ви також можете зателефонувати Convert.FromBase64String.


3

Для цього я написав метод розширення:

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

Називайте це так:

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

Сподіваюся, це комусь допоможе.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.