C# Base64
最后修改于 2023 年 7 月 5 日
在本文中,我们将展示如何将二进制数据编码和解码为/从 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# 教程。