Base64 編碼是常見的對 8 位元位元組碼的編碼方式之一。Base64 可以使用 64 個可列印字元來表示二進位制資料,電子郵件就是使用這種編碼。
Go 語言的標準庫自帶了 Base64 編碼演算法,通過幾行程式碼就可以對資料進行編碼,範例程式碼如下。
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// 需要處理的字串
message := "Away from keyboard. https://golang.org/"
// 編碼訊息
encodedMessage := base64.StdEncoding.EncodeToString([]byte (message))
// 輸出編碼完成的訊息
fmt.Println(encodedMessage)
// 解碼訊息
data, err := base64.StdEncoding.DecodeString(encodedMessage)
// 出錯處理
if err != nil {
fmt.Println(err)
} else {
// 列印解碼完成的資料
fmt.Println(string(data))
}
}
程式碼說明如下:
-
第 11 行為需要編碼的訊息,訊息可以是字串,也可以是二進位制資料。
-
第 14 行,base64 包有多種編碼方法,這裡使用 base64.StdEnoding 的標準編碼方法進行編碼。傳入的字串需要轉換為位元組陣列才能供這個函數使用。
-
第 17 行,編碼完成後一定會輸出字串型別,列印輸出。
-
第 20 行,解碼時可能會發生錯誤,使用 err 變數接收錯誤。
-
第 24 行,出錯時,列印錯誤。
-
第 27 行,正確時,將返回的位元組陣列([]byte)轉換為字串。