2011-07-18 35 views
25

我有一个Base64 byte[]数组,这是从一个流,我需要将其转换为一个正常的byte[]如何做到这一点?C#转换Base64 - > byte []

+0

什么是“Base64'byte []'”?它是什么编码? – SLaks

+1

你可以把代码放在这里吗? –

回答

46

你必须使用Convert.FromBase64String把一个的Base64编码string一个byte[]

+3

我需要'byte [] - > byte []'|这种方法是'byte [] - > string' – Sudantha

+0

Base64始终是ASCII文本。所以只要先编写Encoding.ASCII.GetString(base64arr)。 – Nyerguds

2

您正在查找FromBase64Transform类,与CryptoStream类一起使用。

如果你有一个字符串,你也可以拨打Convert.FromBase64String

5

尝试

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 
15

,这会很有帮助

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

我写的扩展方法用于此目的:

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(); 

我希望它可以帮助别人。