在本文中,我们展示了如何将二进制数据编码和解码为Base64。
编码是将数据从一种形式转换为另一种形式的过程。解码是相反的过程。
Base64是一组类似的二进制到文本编码方案,以文本字符串格式表示二进制数据。
当我们需要在旨在处理文本的媒体上存储和传输二进制数据时,通常会使用Base64编码方案。例如,电子邮件附件中使用Base64编码。
Convert类包含以下与Base64相关的方法:ToBase64String、ToBase64CharArray、FromBase64String、FromBase64CharArray.
C#Convert.ToBase64String
Convert.ToBase64String方法将一个8位无符号整数数组转换为使用base-64数字编码的等效字符串表示形式。
using System.Text;
string msg = "one ð and three ð";
byte[] data = Encoding.UTF8.GetBytes(msg);
string base64 = Convert.ToBase64String(data);
Console.WriteLine(msg);
Console.WriteLine(string.Join(' ', data.Select(e => e.ToString("X2"))));
Console.WriteLine(base64);
我们定义了一个包含两个表情符号字符的字符串。
byte[] data = Encoding.UTF8.GetBytes(msg);
首先,我们将字符串转换为字节数组。
string base64 = Convert.ToBase64String(data);
然后我们使用Convert.ToBase64String将数组转换为base-64字符串。
Console.WriteLine(msg);
Console.WriteLine(string.Join(' ', data.Select(e => e.ToString("X2"))));
Console.WriteLine(base64);
我们打印字符串、十六进制格式的数组和base-64字符串。
$ dotnet run one ð and three ð 6F 6E 65 20 F0 9F 90 98 20 61 6E 64 20 74 68 72 65 65 20 F0 9F 90 8B b25lIPCfkJggYW5kIHRocmVlIPCfkIs=
C#Convert.FromBase64String
Convert.FromBase64String将指定的字符串(将二进制数据编码为base-64数字)转换为等效的8位无符号整数数组。
using System.Text;
string base64 = "b25lIPCfkJggYW5kIHRocmVlIPCfkIs=";
byte[] data = Convert.FromBase64String(base64);
string msg = Encoding.UTF8.GetString(data);
Console.WriteLine(base64);
Console.WriteLine(string.Join(' ', data.Select(e => e.ToString("X2"))));
Console.WriteLine(msg);
我们使用Convert.FromBase64String将base-64编码转换为字符串。
$ dotnet run b25lIPCfkJggYW5kIHRocmVlIPCfkIs= 6F 6E 65 20 F0 9F 90 98 20 61 6E 64 20 74 68 72 65 65 20 F0 9F 90 8B one ð and three ð
C#Base64扩展方法
在下面的示例中,我们创建了用于编码和解码Base64数据的扩展方法。
using System.Text;
namespace Base64Ex;
class Program
{
static void Main()
{
string msg = "one ð and three ð";
string base64 = msg.EncodeBase64();
string msg2 = base64.DecodeBase64();
Console.WriteLine(msg);
Console.WriteLine(base64);
Console.WriteLine(msg2);
}
}
static class ExtensionMethods
{
public static string EncodeBase64(this string value)
{
byte[] data = Encoding.UTF8.GetBytes(value);
return Convert.ToBase64String(data);
}
public static string DecodeBase64(this string value)
{
byte[] data = System.Convert.FromBase64String(value);
return Encoding.UTF8.GetString(data);
}
}
程序创建了EncodeBase64和DecodeBase64扩展方法。
string msg = "one ð and three ð"; string base64 = msg.EncodeBase64(); string msg2 = base64.DecodeBase64();
可以直接在字符串上调用扩展方法。
$ dotnet run one ð and three ð b25lIPCfkJggYW5kIHRocmVlIPCfkIs= one ð and three ð
在本文中,我们展示了如何将二进制数据编码和解码为Base64。
列出所有C#教程。
