问题:
你有一个byte[]用于表示一些二进制信息,比如位图。你需要把该数据编码为一个字符串,以便可以通过不适合传输二进制的方式(比如电子邮件)发送它。
解决方案:
使用Convert类的静态方法Convert.ToBase64String,可以把byte[]编码为其对应的String。
static class DataTypeExtMethods
{
public static string Base64EncodeBytes(this byte[] inputBytes) =>
(Convert.ToBase64String(inputBytes));
}
讨论:
把字符串转换为其base64表示具有多种用途。它允许把二进制数据嵌入到非二进制文件中,比如XML、电子邮件信息等。还可以用比十六进制编码更简洁的格式通过HTTP、GET和POST请求传输base64编码的数据。把数据转换成为base64格式只是使其混淆而不会对其加密,理解这一点是很重要的。为了安全的把数据从一个地方移到另一个地方,应该使用FCL中提供的加密算法。有关使用FCL加密类的示例,参见范例11.4(即11.4节)。
Convert类使得byte[]与String之间的编码成为一件简单的事情。这个方法的参数相当灵活,允许在输入字节数组中的任意位置开始和停止转换。
为了把位图文件编码为可以发送到某个目的地的字符串,可以使用EncodeBitmapToString方法:
public static string EncodeBitmapToString(string bitmapFilePa