C#怎么进行Base64编码解码 C# Base64转换方法

来源:这里教程网 时间:2026-02-21 17:36:50 作者:

在C#中进行Base64编码和解码非常简单,.NET内置的

Convert
类就提供了直接支持,无需额外引用或安装包。

Base64编码:字符串 → Base64字符串

适用于将普通文本(如JSON、XML、密码等)转为安全传输格式。注意:编码前需确保原始字符串用指定编码(通常是UTF-8)转为字节数组。

使用
Encoding.UTF8.GetBytes()
将字符串转为字节数组
调用
Convert.ToBase64String(bytes)
得到Base64字符串

示例:

string original = "Hello 世界";
byte[] bytes = Encoding.UTF8.GetBytes(original);
string base64 = Convert.ToBase64String(bytes); // 输出:SGVsbG8g5L2g5aW9

Base64解码:Base64字符串 → 原始字符串

将接收到的Base64字符串还原为原始内容。关键点是必须用与编码时相同的编码方式(如UTF-8)还原字符串。

Convert.FromBase64String(base64)
转回字节数组
再用
Encoding.UTF8.GetString(bytes)
转为字符串

示例:

string base64 = "SGVsbG8g5L2g5aW9";
byte[] bytes = Convert.FromBase64String(base64);
string original = Encoding.UTF8.GetString(bytes); // 输出:Hello 世界

处理二进制数据(如图片、文件)

Base64常用于嵌入图片(data URI)、上传附件等场景。此时直接操作字节数组即可,无需经过字符串中间环节。

读取文件:
File.ReadAllBytes("logo.png")
编码:
Convert.ToBase64String(fileBytes)
解码后保存:
File.WriteAllBytes("copy.png", Convert.FromBase64String(base64))

注意事项和常见问题

Base64不是加密,只是编码,不可用于保密;长度会增加约33%;输入字符串必须是合法Base64格式,否则

FromBase64String
会抛
FormatException

校验Base64格式可用正则
^[A-Za-z0-9+/]*={0,2}$
粗略判断
含空格或换行的Base64需先清理(
base64.Replace(" ", "").Replace("\r", "").Replace("\n", "")
解码失败时优先检查是否被截断、是否混入HTML标签或引号

基本上就这些。只要记住“字符串→字节→Base64”和“Base64→字节→字符串”这两条主线,配合UTF-8统一编码,就不会出错。

相关推荐