Переменная base64.StdEncoding
Переменная base64.StdEncoding представляет стандартную кодировку Base64,
определенную в RFC 4648. Она используется для кодирования бинарных данных
в текстовый формат, состоящий из символов латинского алфавита, цифр и
символов + и /. Кодировка Base64 часто применяется
для передачи данных в JSON, XML, HTTP-заголовках и других текстовых
протоколах.
Синтаксис
base64.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:
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := []byte("Hello, World!")
res := base64.StdEncoding.EncodeToString(data)
fmt.Println(res)
}
Результат выполнения кода:
"SGVsbG8sIFdvcmxkIQ=="
Пример декодирования из строки
Декодируем Base64-строку обратно в исходные данные:
package 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))
}
}
Результат выполнения кода:
"Hello, World!"
Пример кодирования в буфер
Запишем закодированные данные в предварительно выделенный буфер:
package 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))
}
Результат выполнения кода:
"SGVsbG8sIFdvcmxkIQ=="
Пример декодирования из буфера
Декодируем данные из закодированного буфера обратно:
package 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]))
}
}
Результат выполнения кода:
"Hello, World!"
Смотрите также
-
переменную
base64.URLEncoding,
которая использует безопасный для URL вариант кодировки -
переменную
base64.RawStdEncoding,
которая кодирует без символов заполнения -
функцию
base64.NewEncoder,
которая создает потоковый кодировщик -
функцию
base64.NewDecoder,
которая создает потоковый декодер