在本文中,我们展示了如何将二进制数据编码和解码为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#教程。