Go語言Base64編碼——電子郵件的基礎編碼格式

2020-07-16 10:04:22
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)轉換為字串。