当前位置:首页 > C# > 正文

C#中的Base64编码与解码(从字符串到文件的完整教程)

在开发过程中,我们经常需要将数据以文本形式安全传输或存储。Base64 编码是一种将二进制数据转换为 ASCII 字符串的常用方法。本文将手把手教你如何在 C# 中对 字符串文件 进行 Base64 编码与解码,即使是编程新手也能轻松掌握。

C#中的Base64编码与解码(从字符串到文件的完整教程) C# Base64编码 Base64解码 Base64字符串处理 C#文件Base64转换 第1张

什么是 Base64?

Base64 是一种将任意二进制数据(如图片、音频、PDF 等)编码成由 64 个可打印 ASCII 字符组成的字符串的方法。它常用于电子邮件、HTTP 请求、JSON 数据等场景中,确保数据在传输过程中不会被破坏。

一、C# Base64 编码与解码字符串

我们先从最简单的字符串开始。假设你有一个普通文本,想把它转成 Base64 字符串,然后再还原回来。

1. 字符串 → Base64 编码

using System;using System.Text;class Program{    static void Main()    {        string originalText = "Hello, C# Base64 编码!";        // 将字符串转换为字节数组        byte[] bytes = Encoding.UTF8.GetBytes(originalText);        // 使用 Convert.ToBase64String 进行 Base64 编码        string base64Encoded = Convert.ToBase64String(bytes);        Console.WriteLine("原始字符串: " + originalText);        Console.WriteLine("Base64 编码结果: " + base64Encoded);    }}

运行后输出:

原始字符串: Hello, C# Base64 编码!Base64 编码结果: SGVsbG8sIEMjIEJhc2U2NCBcdWM3NzhcdWM3NzQh

2. Base64 → 字符串解码

using System;using System.Text;class Program{    static void Main()    {        string base64Encoded = "SGVsbG8sIEMjIEJhc2U2NCBcdWM3NzhcdWM3NzQh";        // 将 Base64 字符串解码为字节数组        byte[] bytes = Convert.FromBase64String(base64Encoded);        // 将字节数组转回原始字符串        string originalText = Encoding.UTF8.GetString(bytes);        Console.WriteLine("Base64 字符串: " + base64Encoded);        Console.WriteLine("解码后字符串: " + originalText);    }}

二、C# 文件的 Base64 编码与解码

除了字符串,我们还经常需要将整个文件(如图片、PDF)转换为 Base64,以便嵌入 JSON 或通过 API 传输。

1. 文件 → Base64 编码

using System;using System.IO;class Program{    static void Main()    {        string filePath = @"C:\example\image.jpg";        // 读取文件为字节数组        byte[] fileBytes = File.ReadAllBytes(filePath);        // 转换为 Base64 字符串        string base64String = Convert.ToBase64String(fileBytes);        // 可选:保存到文本文件        File.WriteAllText(@"C:\example\image_base64.txt", base64String);        Console.WriteLine("文件已成功编码为 Base64!");    }}

2. Base64 → 文件还原

using System;using System.IO;class Program{    static void Main()    {        string base64FilePath = @"C:\example\image_base64.txt";        string outputFilePath = @"C:\example\restored_image.jpg";        // 读取 Base64 字符串        string base64String = File.ReadAllText(base64FilePath);        // 解码为字节数组        byte[] fileBytes = Convert.FromBase64String(base64String);        // 写入新文件        File.WriteAllBytes(outputFilePath, fileBytes);        Console.WriteLine("Base64 已成功还原为文件!");    }}

三、注意事项与最佳实践

  • Base64 编码后的数据体积会增加约 33%,不适合大文件频繁传输。
  • 确保使用正确的编码(如 UTF-8)处理字符串,避免中文乱码。
  • 对于大文件,建议使用流式读取(FileStream + BufferedStream)以节省内存。
  • 验证 Base64 字符串是否合法再解码,避免 FormatException 异常。

总结

通过本教程,你已经掌握了在 C# 中如何进行 C# Base64编码C# Base64解码,无论是处理普通文本还是二进制文件。这些技能在 Web 开发、API 设计和数据序列化中非常实用。记住,Base64字符串处理C#文件Base64转换 是每个 .NET 开发者都应掌握的基础能力。

希望这篇教程对你有帮助!动手试试吧~