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

Переменная base64.RawURLEncoding представляет собой экземпляр base64.Encoding, который реализует кодировку Base64 без символов заполнения для безопасного использования в URL и именах файлов. В отличие от стандартного Base64, данная кодировка использует символы - и _ вместо + и / соответственно, а также не добавляет символы заполнения = в конец закодированной строки. Это делает ее идеальным выбором для передачи данных в URL-параметрах, заголовках HTTP и именах файлов.

Синтаксис

gobase64.RawURLEncoding

Пример

Давайте закодируем строку "Hello, World!" в формат Base64 без заполнения, используя кодировку для URL:

gopackage main

import (
  "encoding/base64"
  "fmt"
)

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

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

go"Hello, World!"

Пример

Давайте закодируем строку "Go语言" (кириллица и спецсимволы) с помощью base64.RawURLEncoding:

gopackage main

import (
  "encoding/base64"
  "fmt"
)

func main() {
  data := []byte("Go语言")
  res := base64.RawURLEncoding.EncodeToString(data)
  fmt.Println(res)
}

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

go"R2_ov6yt"

Пример

Давайте закодируем и раскодируем данные, чтобы продемонстрировать симметричность работы base64.RawURLEncoding:

gopackage main

import (
  "encoding/base64"
  "fmt"
)

func main() {
  original := []byte("12345")
  encoded := base64.RawURLEncoding.EncodeToString(original)
  decoded, err := base64.RawURLEncoding.DecodeString(encoded)
  if err != nil {
    fmt.Println("error:", err)
    return
  }
  fmt.Println(string(decoded))
}

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

go"12345"

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

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