新闻中心

C# 如何进行Base64编码和解码 - Convert类的静态方法

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

c# 如何进行base64编码和解码 - convert类的静态方法

在C#中,使用 Convert 类的静态方法进行 Base64 编码和解码是最常用、最直接的方式,无需额外引用或安装包,.NET 框架原生支持。

将字符串编码为 Base64 字符串

需先将字符串转为字节数组(指定编码,通常用 UTF-8),再调用 Convert.ToBase64String()

  • 字符串 → Encoding.UTF8.GetBytes() → byte[]
  • byte[] → Convert.ToBase64String() → Base64 字符串

示例:

神笔马良 神笔马良

神笔马良 - AI让剧本一键成片。

神笔马良 320 查看详情 神笔马良 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()
  • 避免混用 ASCIIEncodingUnicodeEncoding,尤其处理中文时
  • Base64 本身不关心内容含义,只对字节流做转换,语义由编码方式决定

异常处理建议

Base64 字符串若格式错误(如长度不是 4 的倍数、含非法字符),FromBase64String() 会抛出 FormatException

  • 可在解码前用正则粗略校验(可选):^[A-Za-z0-9+/]*={0,2}$
  • 更稳妥做法是 try-catch 并提示“无效的 Base64 字符串”
  • 注意:空字符串或 null 需提前判断,避免传入 FromBase64String(null) 抛出 ArgumentNullException

基本上就这些。Convert 类的方法简洁可靠,适合绝大多数场景——只要记住“先转字节、再编/解码”,并保持编码统一,就不会出错。

以上就是C# 如何进行Base64编码和解码 - Convert类的静态方法的详细内容,更多请关注其它相关文章!


# base64  # 网站排名优化首推云速捷  # 花时间去学seo有用吗  # 网站推广总监底薪多少  # 全网营销推广软件有用吗  # 奉贤区官方网站优化公司  # 海南关键词快速排名  # 邵武有效的seo优化  # 苏州百度搜索关键词排名  # seo规则大全  # 再用  # 时就  # 可选  # 解决问题  # 要用  # 中文网  # 可在  # 相关文章  # 与非  # 抛出  # .net  # 字节  # 编码  # c#  # 众赢天下网站建设费用 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 在Runstone环境中高效处理TasteDive API的JSON数据  Golang如何测试channel通信行为_Golang channel通信测试与分析方法  一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  c++ 命名空间怎么用 c++ namespace使用指南  汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口  Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】  必由学官方网站入口 必由学学生教师共用登录通道  精准捕获:如何在页面中监听除特定元素外的所有点击事件  58动漫网在线官方网 58动漫网正版动漫入口网址  2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示  Node.js 中使用 node-cron 实现定时 API 数据抓取与处理  Golang指针如何与map组合使用_Golang map指针组合实践  如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构  uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页  蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址  PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比  ArrayList与LinkedList核心操作的Big-O复杂度分析  QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口  CSS实现侧边栏导航项全宽圆角悬停背景效果  动漫岛观看全网网 动漫岛在线正版动漫入口  将HTML Canvas内容转换为可上传的图像文件(File对象)  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口  TypeScript/J*aScript:高效查找数组中首个唯一ID对象  如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension  Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  Steam官网入口直达 Steam注册及登录步骤  美团外卖商家服务中心入口 美团商家版官网入口  百度网盘网页版入口 百度网盘网页版官方登录网址  如何使用Go和Martini动态服务解码后的图片  Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量  Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程  Golang如何实现简单的Web表单_Golang表单提交与验证处理方法  2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南  生成rdflib自定义SPARQL函数:参数匹配与实践指南  Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】  Composer如何在生产环境安全地执行composer update  电脑IP地址怎么查 查看本机IP地址的几种方法  哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法  LINUX怎么设置定时任务_LINUX crontab配置教程  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性  Python中高效访问嵌套字典与列表中的键值对  韩剧圈正版入口页面_韩剧圈官网登录链接 

搜索