gobyexample/examples/base64-encoding/base64-encoding.go
2019-10-11 13:25:59 +03:00

40 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Go имеет встроенную поддержку [base64
// кодирования и декодирования](http://en.wikipedia.org/wiki/Base64).
package main
// Этот синтаксис импортирует пакет `encoding/base64` с
// с алиасом `b64`, вместо названия по-умолчанию. Это
// сэкономит нам немного места.
import (
b64 "encoding/base64"
"fmt"
)
func main() {
// `Строка`, которую мы будем кодировать/декодировать.
data := "abc123!?$*&()'-=@~"
// Go поддерживает оба стандарта и URL-совместимого
// base64. Кодируем, используя стандартнай кодировщик.
// Кодировщик требует `[]byte` на входе, поэтому
// мы конвертируем нашу `строку`.
sEnc := b64.StdEncoding.EncodeToString([]byte(data))
fmt.Println(sEnc)
// Декодирование может вернуть ошибку, которую можно
// проверить, если вы не уверены в корректности
// входных данных.
sDec, _ := b64.StdEncoding.DecodeString(sEnc)
fmt.Println(string(sDec))
fmt.Println()
// Это кодирование/декодирование использует
// URL-совместимый base64 формат.
uEnc := b64.URLEncoding.EncodeToString([]byte(data))
fmt.Println(uEnc)
uDec, _ := b64.URLEncoding.DecodeString(uEnc)
fmt.Println(string(uDec))
}