Переменная base64.StdEncoding

Переменная base64.StdEncoding представляет стандартную кодировку Base64, определенную в RFC 4648. Она используется для кодирования бинарных данных в текстовый формат, состоящий из символов латинского алфавита, цифр и символов + и /. Кодировка Base64 часто применяется для передачи данных в JSON, XML, HTTP-заголовках и других текстовых протоколах.

Синтаксис

gobase64.StdEncoding.EncodeToString(data []byte) string
base64.StdEncoding.DecodeString(s string) ([]byte, error)
base64.StdEncoding.Encode(dst, src []byte)
base64.StdEncoding.Decode(dst, src []byte) (int, error)

Пример кодирования в строку

Давайте закодируем строку "Hello, World!" в формат Base64:

gopackage main

import (
  "encoding/base64"
  "fmt"
)

func main() {
  data := []byte("Hello, World!")
  res := base64.StdEncoding.EncodeToString(data)
  fmt.Println(res)
}

Результат выполнения кода:

go"SGVsbG8sIFdvcmxkIQ=="

Пример декодирования из строки

Декодируем Base64-строку обратно в исходные данные:

gopackage main

import (
  "encoding/base64"
  "fmt"
)

func main() {
  s := "SGVsbG8sIFdvcmxkIQ=="
  data, err := base64.StdEncoding.DecodeString(s)
  if err != nil {
    fmt.Println("Error:", err)
  } else {
    fmt.Println(string(data))
  }
}

Результат выполнения кода:

go"Hello, World!"

Пример кодирования в буфер

Запишем закодированные данные в предварительно выделенный буфер:

gopackage main

import (
  "encoding/base64"
  "fmt"
)

func main() {
  data := []byte("Hello, World!")
  dst := make([]byte, base64.StdEncoding.EncodedLen(len(data)))
  base64.StdEncoding.Encode(dst, data)
  fmt.Println(string(dst))
}

Результат выполнения кода:

go"SGVsbG8sIFdvcmxkIQ=="

Пример декодирования из буфера

Декодируем данные из закодированного буфера обратно:

gopackage main

import (
  "encoding/base64"
  "fmt"
)

func main() {
  s := "SGVsbG8sIFdvcmxkIQ=="
  src := []byte(s)
  dst := make([]byte, base64.StdEncoding.DecodedLen(len(src)))
  n, err := base64.StdEncoding.Decode(dst, src)
  if err != nil {
    fmt.Println("Error:", err)
  } else {
    fmt.Println(string(dst[:n]))
  }
}

Результат выполнения кода:

go"Hello, World!"

Смотрите также

  • переменную base64.URLEncoding,
    которая использует безопасный для URL вариант кодировки
  • переменную base64.RawStdEncoding,
    которая кодирует без символов заполнения
  • функцию base64.NewEncoder,
    которая создает потоковый кодировщик
  • функцию base64.NewDecoder,
    которая создает потоковый декодер