C # Преобразование Base64 -> byte []


93

У меня есть Base64 byte[]массив, который передается из потока, который мне нужно преобразовать в нормальный, byte[]как это сделать?


Что такое «Base64 byte[]»? В какой это кодировке?
SLaks

2
ты можешь поместить сюда код?
Fereydoon Barikzehy

Да, я не думаю, что у вас есть Base64 byte[]. Если он в формате Base64, это строка.
vapcguy

Ответы:


167

Вы должны использовать Convert.FromBase64String, чтобы превратить Base64, закодированный stringв byte[].


3
мне нужно byte[] - > byte[] | этот методbyte[] -> string
Суданта

4
Base64 - это всегда текст в формате ascii. Так что Encoding.ASCII.GetString(base64arr)сначала сделай .
Nyerguds

3
Теперь есть Convert.FromBase64CharArray.
Ли Лувьер


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.