文章目录
两个默认的编/解码器:
// 使用 RFC 4648 定义的标准 base64 编码字符集初始化的编解码器
var StdEncoding = NewEncoding(encodeStd)
// 使用 RFC 4648 定义的标准 base64 编码字符集初始化的编解码器,用于URL和文件名。
var URLEncoding = NewEncoding(encodeURL)
这两个变量可以直接拿来用,比如将一个图片序列化:
imgPath := "/home/hongyu/图片/wallhaven-672612.jpg"
imgf, err := os.Open(imgPath)
// if err != nil{...}
data, err := ioutil.ReadAll(imgf)
// if err != nil {...}
b64 := base64.StdEncoding.EncodeToString(data) // 序列化为字符串
序列化一个 url:
url := []byte("https://www.bilibili.com/bangumi/media/md28223790/?from=search&seid=458027751011287317")
b64 = base64.URLEncoding.EncodeToString(url)
异常类 CorruptInputError
当编/解码遇到非法字符就会返回 该异常类
编解码类 Encoding
type Encoding struct {
// 内含隐藏或非导出字段
}
双向的编码/解码协议,根据一个64字符的字符集定义,RFC 4648 标准化了两种字符集。默认字符集用于 MIME(RFC 2045)和 PEM(RFC 1421)编码;另一种用于 URL 和文件名,用 ‘-’ 和 ‘_’ 替换了 ‘+’ 和 ‘/’。
函数 NewEncoding
func NewEncoding(encoder string) *Encoding
使用给出的字符集生成一个 *Encoding
,字符集必须是 64 字节的字符串。