Го предоставя вградена поддръжка за превръщане на данни в base64 (основа 64) и обратно превръщане от него в изходен вид. За приложението на този вид изобразяване на данни вижте (https://en.wikipedia.org/wiki/Base64).
Така внасяме пакета encoding/base64 – с по-кратко име, за да пишем
по-малко.
import (
b64 "encoding/base64"
"fmt"
)
func main() {
Ето низът, който ще превърнем и после ще върнем в изходния му вид.
данни := "абв123!?$*&()'-=@~"
Го поддържа както обикновено, така и съвместимо с изто̀чници превръщане.
Превръщачът очаква данни от вида []byte, така че трябва да превърнем
нашия низ първо в такъв вид.
sEnc := b64.StdEncoding.EncodeToString([]byte(данни))
fmt.Println(sEnc)
Превръщането може да върне грешка. Можете да я обработите, ако не сте сигурни дали входните данни са правилни.
sDec, _ := b64.StdEncoding.DecodeString(sEnc)
fmt.Println(string(sDec))
fmt.Println()
Следните редове превръщат в съвместим с изто̀чници вид и обратно.
uEnc := b64.URLEncoding.EncodeToString([]byte(данни))
fmt.Println(uEnc)
uDec, _ := b64.URLEncoding.DecodeString(uEnc)
fmt.Println(string(uDec))
}
Произведеният вид леко се различава между обикновеното и съвместимото с изто̀чници превръщане (завършващ знак + вместо -), но и в двата случая обратното превръщане води до един и същи първоначален вид данни.
$ go run base64-encoding.go
0LDQsdCyMTIzIT8kKiYoKSctPUB+
абв123!?$*&()'-=@~
0LDQsdCyMTIzIT8kKiYoKSctPUB-
абв123!?$*&()'-=@~
Следващ пример: Четене от файлове.