Go は Base64 エンコード/デコード を組み込みでサポートしています。 |
|
package main |
|
この構文は、 |
import ( b64 "encoding/base64" "fmt" ) |
func main() { |
|
エンコード/デコードする |
data := "abc123!?$*&()'-=@~" |
Go 標準の Base64 と URL 互換の Base64
の両方をサポートしています。
以下は、標準のエンコーダーを使ってエンコードする方法です。
エンコーダーは |
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 互換エンコーダーで
微妙に異なる値となります (末尾が |
$ go run base64-encoding.go YWJjMTIzIT8kKiYoKSctPUB+ abc123!?$*&()'-=@~ |
YWJjMTIzIT8kKiYoKSctPUB- abc123!?$*&()'-=@~ |
Next example: Reading Files.