C#中用Convert类进行Base64编解码需先通过Encoding.UTF8.GetBytes()将字符串转为字节数组,再调用Convert.ToBase64String()编码;解码则反向操作,且必须保持UTF-8编码一致,否则中文会乱码。

在C#中,使用 Convert 类的静态方法进行 Base64 编码和解码是最常用、最直接的方式,无需额外引用或安装包,.NET 框架原生支持。
将字符串编码为 Base64 字符串
需先将字符串转为字节数组(指定编码,通常用 UTF-8),再调用 Convert.ToBase64String():
字符串 → Encoding.UTF8.GetBytes() → byte[] byte[] → Convert.ToBase64String() → Base64 字符串
示例:
string original = “Hello 世界”;
byte[] bytes = Encoding.UTF8.GetBytes(original);
string base64 = Convert.ToBase64String(bytes); // 得到 “SGVsbG8g5L2g5aW9”
将 Base64 字符串解码为原始字符串
反向操作:先用 Convert.FromBase64String() 解码为字节数组,再用对应编码还原为字符串:
Base64 字符串 → Convert.FromBase64String() → byte[] byte[] → Encoding.UTF8.GetString() → 原始字符串
示例:
string base64 = “SGVsbG8g5L2g5aW9”;
byte[] bytes = Convert.FromBase64String(base64);
string decoded = Encoding.UTF8.GetString(bytes); // 得到 “Hello 世界”
注意编码一致性
编码和解码必须使用相同的字符编码(推荐 UTF-8),否则中文等非 ASCII 字符会乱码:
编码时用了 UTF8.GetBytes(),解码时就一定要用 UTF8.GetString() 避免混用 ASCIIEncoding 或 UnicodeEncoding,尤其处理中文时 Base64 本身不关心内容含义,只对字节流做转换,语义由编码方式决定
异常处理建议
Base64 字符串若格式错误(如长度不是 4 的倍数、含非法字符),FromBase64String() 会抛出 FormatException:
可在解码前用正则粗略校验(可选):^[A-Za-z0-9+/]*={0,2}$ 更稳妥做法是 try-catch 并提示“无效的 Base64 字符串” 注意:空字符串或 null 需提前判断,避免传入 FromBase64String(null) 抛出 ArgumentNullException
基本上就这些。Convert 类的方法简洁可靠,适合绝大多数场景——只要记住“先转字节、再编/解码”,并保持编码统一,就不会出错。
以上就是C# 如何进行Base64编码和解码 – Convert类的静态方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1442619.html
微信扫一扫
支付宝扫一扫