instruction: Explain go by example: base64 encoding
output: Go by Example
  : Base64 Encoding
  Go provides built-in support for
  base64
  encoding/decoding
  .
  package
  main
  This syntax imports the
  encoding/base64
  package with
  the
  b64
  name instead of the default
  base64
  . It’ll
  save us some space below.
  import
  (
  b64
  "encoding/base64"
  "fmt"
  )
  func
  main
  ()
  {
  Here’s the
  string
  we’ll encode/decode.
  data
  :=
  "abc123!?$*&()'-=@~"
  Go supports both standard and URL-compatible
  base64. Here’s how to encode using the standard
  encoder. The encoder requires a
  []byte
  so we
  convert our
  string
  to that type.
  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
  +
  vs
  -
  )
  but they both decode to the original string as desired.
  $
  go run base64-encoding.go
  YWJjMTIzIT8kKiYoKSctPUB+
  abc123!?$*&()'-=@~
  YWJjMTIzIT8kKiYoKSctPUB-
  abc123!?$*&()'-=@~
  Next example:
  Reading Files
  .
  by
  Mark McGranaghan
  and
  Eli Bendersky
  |
  source
  |
  license