57-Base64

// Go内置支持base64编解码。

package main

import (
	"encoding/base64"
	"fmt"
)

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

	// Go支持标准的和URL兼容的Base64
	// 使用标准编码器进行编码,编码器需要字节数组,所以将字符串转换为字节数组
	sEnc := base64.StdEncoding.EncodeToString([]byte(data))
	fmt.Println(sEnc)

	// 解码会返回错误,可用于检测输入格式是否正确
	sDec, _ := base64.StdEncoding.DecodeString(sEnc)
	fmt.Println(string(sDec))
	fmt.Println()

	// 使用与URL兼容的Base64编解码方式
	uEnc := base64.URLEncoding.EncodeToString([]byte(data))
	fmt.Println(uEnc)

	uDec, _ := base64.URLEncoding.DecodeString(uEnc)
	fmt.Println(string(uDec))
}

// 对同一个字符串使用标准编码器和URL兼容的编码器进行编码等到的值略有不同(末尾是+或者-)
// 但是都能根据需要解码为原始字符串
上次修改: 10 January 2020