C# Base64 编码

在本文中,我们展示了如何将二进制数据编码和解码为Base64。

编码是将数据从一种形式转换为另一种形式的过程。解码是相反的过程。

Base64是一组类似的二进制到文本编码方案,以文本字符串格式表示二进制数据。

当我们需要在旨在处理文本的媒体上存储和传输二进制数据时,通常会使用Base64编码方案。例如,电子邮件附件中使用Base64编码。

Convert类包含以下与Base64相关的方法:ToBase64StringToBase64CharArrayFromBase64StringFromBase64CharArray.

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);
    }
}

程序创建了EncodeBase64DecodeBase64扩展方法。

string msg = "one 🐘 and three 🐋";
string base64 = msg.EncodeBase64();
string msg2 = base64.DecodeBase64();

可以直接在字符串上调用扩展方法。

$ dotnet run
one 🐘 and three 🐋
b25lIPCfkJggYW5kIHRocmVlIPCfkIs=
one 🐘 and three 🐋

在本文中,我们展示了如何将二进制数据编码和解码为Base64。

列出所有C#教程。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏