Go による例: Base64 エンコーディング

Go は base64 のエンコード/デコード の組み込みサポートを提供しています

package main

このシンタックスはデフォルトの base64 ではなく b64 という名前で 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))
}

この文字列は、標準と URL の base64 エンコーダーによってわずかに異なる値にエンコードされます(末尾の +-)が、どちらも目的の元の文字列にデコードされます。

$ go run base64-encoding.go
YWJjMTIzIT8kKiYoKSctPUB+
abc123!?$*&()'-=@~
YWJjMTIzIT8kKiYoKSctPUB-
abc123!?$*&()'-=@~

次の例: ファイルの読み込み