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# 教程。