在线文档 > Golang练习 > Base64 编码
Go 提供了内置支持的base64编码/解码。
package main
// 这个语法使用b64名称而不是默认的base64导入了 `encoding/base64` 包。
// 这将在下面为我们节省一些空间。
import (
b64 "encoding/base64"
"fmt"
)
func main() {
// 这里是我们要编码/解码的`string`。
data := "abc123!?$*&()'-=@~"
// Go 支持标准和 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))
}
运行结果如下:
$ go run base64-encoding.go
YWJjMTIzIT8kKiYoKSctPUB+
abc123!?$*&()'-=@~
YWJjMTIzIT8kKiYoKSctPUB-
abc123!?$*&()'-=@~
字符串使用标准和 URL base64 编码器编码为略有不同的值后缀为 + 和 -),但它们都根据需要解码为原始字符串。