C# 将 Base64 转换为 byte[]

132

我有一个从流中传输的 Base64 byte[] 数组,我需要将其转换为普通的 byte[] 数组。怎么做?


什么是“Base64 byte[]”?它采用的编码是什么? - SLaks
2
你能把代码放在这里吗? - fbarikzehy
2
是的,我认为你没有一个Base64的byte[]。如果它是以Base64格式存在的,那么它就是一个字符串。 - vapcguy
我认为他的意思是他有一个字节数组经过Base64编码。 - KWallace
5个回答

233

4
我需要 byte[] -> byte[] | 这个方法是 byte[] -> string - Sudantha
6
Base64始终是ASCII文本。因此,先使用Encoding.ASCII.GetString(base64arr)进行转换。 - Nyerguds
4
现在有一个Convert.FromBase64CharArray方法。 - Lee Louviere

57

这可能会有帮助

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

9

尝试

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

4
你需要使用与CryptoStream类一起使用的FromBase64Transform类。如果你有一个字符串,也可以调用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();

我希望这能对某些人有所帮助。

UTF8解码过于复杂了,因为它总是ASCII文本。 - Nyerguds

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接