概念簡介
Go語言提供內建的 base64 編解碼支持。
例程代碼
package main
// 這個語法引入了 `encoding/base64` 包並使用名稱 `b64`
// 代替默認的 `base64`。這樣可以節省點空間。
import b64 "encoding/base64"
import "fmt"
func main() {
// 這是將要編解碼的字符串。
data := "abc123!?$*&()'-=@~"
// Go 同時支持標準的和 URL 兼容的 base64 格式。編碼需要
// 使用 `[]byte` 類型的參數,所以要將字符串轉成此類型。
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))
}
執行&輸出
# 標準 base64 編碼和 URL 兼容 base64 編碼的編碼字符串存在
# 稍許不同(後綴為 `+` 和 `-`),但是兩者都可以正確解碼為
# 原始字符串。
$ go run base64-encoding.go
YWJjMTIzIT8kKiYoKSctPUB+
abc123!?$*&()'-=@~
YWJjMTIzIT8kKiYoKSctPUB-
abc123!?$*&()'-=@~
課程導航
學習上一篇:Go語言教程:SHA1散列 學習下一篇:Go語言教程:讀文件
相關資料
本例程github源代碼:https://github.com/xg-wang/gobyexample/tree/master/examples/base64-encoding