Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
Go语言提供了对base64编码解码的支持;
encoding/base64
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := "hello world"
enc_str := base64.StdEncoding.EncodeToString([]byte(data))
fmt.Println(enc_str)
dec_str, _ := base64.StdEncoding.DecodeString(enc_str)
fmt.Println(string(dec_str))
}
标准的base64不适合直接放在URL里传输,因为URL编码器会把标准BASE64中的“+”和"/"字符进行编码,变成如“%XX”的形式;所以,衍生出一种用于URL的改进Base64编码,它在末尾填充“=”号,并将标准base64中的“+”和“/"分别改成了”-“和"_"。
URL base64的实现
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := "hello world"
enc_str := base64.URLEncoding.EncodeToString([]byte(data))
fmt.Println(enc_str)
dec_str, _ := base64.URLEncoding.DecodeString(enc_str)
fmt.Println(string(dec_str))
}