前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go by Example 中文版: Base64 编码

Go by Example 中文版: Base64 编码

作者头像
ccf19881030
发布2020-09-24 15:03:14
5770
发布2020-09-24 15:03:14
举报
文章被收录于专栏:ccf19881030的博客

Go by Example 中文版:Base64 编码

Go 提供了对 base64 编解码的内建支持。 下面是使用encoding/base64包进行编解码的Go示例代码:

代码语言:javascript
复制
package main

// Go by Example 中文版: Base64 编码
// https://gobyexample-cn.github.io/base64-encoding
// Go提供了对base64编解码的内建支持。

// 这个语法引入了 encoding/base64包,并使用别名b64代替默认的base64.这样可以节省点空间。
import (
	b64 "encoding/base64"
	"fmt"
)

func main() {
	// 这是要编解码的字符串。
	data := "abc123!?$*&()'-=@~"

	//Go 同时支持标准 base64 以及 URL 兼容 base64。
	//这是使用标准编码器进行编码的方法。
	//编码器需要一个 []byte,因此我们将 string 转换为该类型。
	sEnc := b64.StdEncoding.EncodeToString([]byte(data))
	fmt.Println(sEnc)

	// 解码可能会返回错误,如果不确定输入信息格式是否正确,那么,你就需要进行错误检查了。
	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))
}

标准 base64 编码和 URL base64 编码的 编码字符串存在稍许不同(后缀为 + 和 -), 但是两者都可以正确解码为原始字符串。 运行结果如下所示:

代码语言:javascript
复制
$ go run base64-encoding.go
YWJjMTIzIT8kKiYoKSctPUB+
abc123!?$*&()'-=@~
YWJjMTIzIT8kKiYoKSctPUB-
abc123!?$*&()'-=@~
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Go by Example 中文版:Base64 编码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档