|
Go provides built-in support for base64 encoding/decoding. |
|
![]()
package main |
|
|
This syntax imports the |
import ( b64 "encoding/base64" "fmt" ) |
func main() { |
|
|
Here’s the |
data := "abc123!?$*&()'-=@~"
|
|
Go supports both standard and URL-compatible
base64. Here’s how to encode using the standard
encoder. The encoder requires a |
sEnc := b64.StdEncoding.EncodeToString([]byte(data))
fmt.Println(sEnc)
|
|
Decoding may return an error, which you can check if you don’t already know the input to be well-formed. |
sDec, _ := b64.StdEncoding.DecodeString(sEnc)
fmt.Println(string(sDec))
fmt.Println()
|
|
This encodes/decodes using a URL-compatible base64 format. |
uEnc := b64.URLEncoding.EncodeToString([]byte(data))
fmt.Println(uEnc)
uDec, _ := b64.URLEncoding.DecodeString(uEnc)
fmt.Println(string(uDec))
}
|
|
The string encodes to slightly different values with the
standard and URL base64 encoders (trailing |
$ go run base64-encoding.go YWJjMTIzIT8kKiYoKSctPUB+ abc123!?$*&()'-=@~ |
YWJjMTIzIT8kKiYoKSctPUB- abc123!?$*&()'-=@~ |
Next example: Reading Files.