Функция base64.NewDecoder

Функция base64.NewDecoder создает новый декодер Base64, который читает данные из указанного io.Reader и декодирует их в исходный бинарный формат. Первым параметром функция принимает кодировку Base64 (например, base64.StdEncoding или base64.URLEncoding), вторым параметром — источник закодированных данных, реализующий интерфейс io.Reader. Возвращаемое значение — это io.Reader, который при чтении выполняет декодирование "на лету".

Синтаксис

gobase64.NewDecoder(enc *base64.Encoding, r io.Reader) io.Reader

Пример

Давайте декодируем строку "SGVsbG8gV29ybGQ=" с использованием стандартной кодировки Base64:

gopackage main

import (
  "encoding/base64"
  "fmt"
  "strings"
)

func main() {
  encoded := "SGVsbG8gV29ybGQ="
  decoder := base64.NewDecoder(base64.StdEncoding, strings.NewReader(encoded))
  decoded, err := io.ReadAll(decoder)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(string(decoded))
}

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

go"Hello World"

Пример

Декодирование данных из URL-безопасной кодировки Base64 с использованием base64.URLEncoding:

gopackage main

import (
  "encoding/base64"
  "fmt"
  "strings"
)

func main() {
  encoded := "SGVsbG8gV29ybGQh"
  decoder := base64.NewDecoder(base64.URLEncoding, strings.NewReader(encoded))
  decoded, err := io.ReadAll(decoder)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(string(decoded))
}

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

go"Hello World!"

Пример

Декодирование данных из строки без добавления символов заполнения с использованием base64.RawStdEncoding:

gopackage main

import (
  "encoding/base64"
  "fmt"
  "strings"
)

func main() {
  encoded := "SGVsbG8gV29ybGQ"
  decoder := base64.NewDecoder(base64.RawStdEncoding, strings.NewReader(encoded))
  decoded, err := io.ReadAll(decoder)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Println(string(decoded))
}

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

go"Hello World"

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

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