Переменная base64.URLEncoding
Переменная base64.URLEncoding предоставляет
кодировщик Base64, использующий URL-safe алфавит.
В отличие от стандартного кодировщика base64.StdEncoding,
URL-safe версия использует символы '-' вместо '+' и '_' вместо '/',
что делает закодированную строку безопасной для использования
в URL-адресах, именах файлов и JSON без необходимости
экранирования. Эта переменная представляет собой экземпляр
структуры base64.Encoding с предустановленным
алфавитом и опцией дополнения.
Синтаксис
base64.URLEncoding.EncodeToString(data []byte) string
base64.URLEncoding.DecodeString(s string) ([]byte, error)
Пример
Давайте закодируем простую строку в URL-safe Base64:
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := []byte("Hello, World!")
encoded := base64.URLEncoding.EncodeToString(data)
fmt.Println(encoded)
}
Результат выполнения кода:
"SGVsbG8sIFdvcmxkIQ=="
Пример
Давайте закодируем бинарные данные, содержащие символы, которые в стандартном Base64 превратились бы в '+' и '/':
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := []byte{0xFF, 0xFE, 0xFD, 0xFC}
encoded := base64.URLEncoding.EncodeToString(data)
fmt.Println(encoded)
}
Результат выполнения кода:
"__7w"
Пример
Давайте декодируем закодированную URL-safe Base64 строку обратно в исходные данные:
package main
import (
"encoding/base64"
"fmt"
"log"
)
func main() {
encoded := "SGVsbG8sIFdvcmxkIQ=="
decoded, err := base64.URLEncoding.DecodeString(encoded)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(decoded))
}
Результат выполнения кода:
"Hello, World!"
Пример
Давайте сравним результат кодирования с помощью base64.StdEncoding
и base64.URLEncoding для одних и тех же данных:
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := []byte("abc?")
std := base64.StdEncoding.EncodeToString(data)
url := base64.URLEncoding.EncodeToString(data)
fmt.Println("Стандартный Base64:", std)
fmt.Println("URL-safe Base64:", url)
}
Результат выполнения кода:
"Стандартный Base64: YWJjPw=="
"URL-safe Base64: YWJjPw=="
Смотрите также
-
переменную
base64.StdEncoding,
использующую стандартный Base64 алфавит для кодирования -
переменную
base64.RawURLEncoding,
работающую без символов дополнения для URL-safe данных -
функцию
base64.Encoding.EncodeToString,
которая кодирует данные в строку Base64 -
функцию
base64.Encoding.DecodeString,
которая декодирует строку Base64 в данные