兄弟连Go语言培训教程带你实战GO案例(6)Go Base64编码

XDLGo · 2018-07-31 17:30:46 · 1114 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2018-07-31 17:30:46 的文章,其中的信息可能已经有所发展或是发生改变。

  兄弟连Go语言培训课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌名师团队精心打造,历时半年时间共同研发而出。

  GoBase64编码

  Go提供了对base64编码和解码的内置支持

  packagemain

  //这种导入包的语法将默认的base64起了一个别名b64,这样

  //我们在下面就可以直接使用b64表示这个包,省点输入量

  importb64"encoding/base64"

  import"fmt"

  funcmain(){

  //这里是我们用来演示编码和解码的字符串

  data:="abc123!?$*&()'-=@~"

  //Go支持标准的和兼容URL的base64编码。

  //我们这里使用标准的base64编码,这个

  //函数需要一个[]byte参数,所以将这

  //个字符串转换为字节数组

  sEnc:=b64.StdEncoding.EncodeToString([]byte(data))

  fmt.Println(sEnc)

  //解码一个base64编码可能返回一个错误,

  //如果你不知道输入是否是正确的base64

  //编码,你需要检测一些解码错误

  sDec,_:=b64.StdEncoding.DecodeString(sEnc)

  fmt.Println(string(sDec))

  fmt.Println()

  //使用兼容URL的base64编码和解码

  uEnc:=b64.URLEncoding.EncodeToString([]byte(data))

  fmt.Println(uEnc)

  uDec,_:=b64.URLEncoding.DecodeString(uEnc)

  fmt.Println(string(uDec))

  }

  运行结果

  YWJjMTIzIT8kKiYoKSctPUB+

  abc123!?$*&()'-=@~

  YWJjMTIzIT8kKiYoKSctPUB-

  abc123!?$*&()'-=@~

  这两种方法都将原数据编码为base64编码,区别在于标准的编码后面是+,而兼容URL的编码方式后面

  是-。


有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1114 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传