创作人 Leo
编辑时间 Wed Nov 23,2022 at 15:03
// StdEncoding is the standard base64 encoding, as defined in
// RFC 4648.
var StdEncoding = NewEncoding(encodeStd)
// URLEncoding is the alternate base64 encoding defined in RFC 4648.
// It is typically used in URLs and file names.
var URLEncoding = NewEncoding(encodeURL)
// RawStdEncoding is the standard raw, unpadded base64 encoding,
// as defined in RFC 4648 section 3.2.
// This is the same as StdEncoding but omits padding characters.
var RawStdEncoding = StdEncoding.WithPadding(NoPadding)
// RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648.
// It is typically used in URLs and file names.
// This is the same as URLEncoding but omits padding characters.
var RawURLEncoding = URLEncoding.WithPadding(NoPadding)
go语言提供了四种 base64 编码解析器
以 Raw 开头的没有对数据进行补白(padding),padding 就是我们看到的 base64 编码后面的 = ,有时候是一个有时候是两个
不推荐使用 Raw 开头的编码器,因为大部分程序都是补白的,对接第三方数据,或者提供接口可能会有问题
StdEncoding 和 URLEncoding 两者的区别是 URLEncoding 是文件系统以及URL安全的,他将 + 和 / 改成了 - 和 _
如果数据需要作为 url 的 query string 值存在,推荐使用 URLEncoding