2011-07-18 36 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(); 

我希望它可以幫助別人。