2.12. Decoding a Base64-Encoded Binary
Problem
You have a string
that
contains information such as a bitmap encoded as base64. You need to
decode this data (which may have been embedded in an email message)
from a string
into a byte[]
so
that you can access the original binary.
Solution
Using the static method
Convert
.FromBase64CharArray
on
the Convert
class, an encoded
char[]
and/or string
may be
decoded to its equivalent byte[]
:
using System; public static byte[] Base64DecodeString(string inputStr) { byte[] decodedByteArray = Convert.FromBase64CharArray(inputStr.ToCharArray( ), 0, inputStr.Length); return (decodedByteArray); }
Discussion
The static FromBase64CharArray
method on the
Convert
class makes decoding an encoded base64
string a simple matter. This method returns a
byte[]
that contains the decoded elements of the
string
.
If you receive a file via email, such as an image file (.bmp), that has previously been converted to a string, to convert it back into its original bitmap file, you could do something like the following:
byte[] imageBytes = Base64DecodeString(bmpAsString); fstrm = new FileStream(@"C:\winnt_copy.bmp", FileMode.CreateNew, FileAccess.Write); BinaryWriter writer = new BinaryWriter(fstrm); writer.Write(imageBytes); writer.Close( ); fstrm.Close( );
In this code, the bmpAsString
variable was
obtained from the code in the Discussion section of Recipe 2.11. The imageBytes
byte[]
is the bmpAsString
string
converted back to a
byte[]
, which can then be written back ...
Get C# Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.