Base64可以将二进制数据编码为文本数据,比如将二进制格式的图片编码为文本存储

例如:

data:image/gif;base64,R0lGODlhMwAxAIAAAAAAAP///yH5BAAAAAAALAAAAAAzADEAAAK8jI+pBr0PowytzotTtbm/DTqQ6C3hGXElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgdLbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wnk2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbFZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw==

前面的部分,是存储了二进制数据的格式,并非base64编码后的结果

data:image/gif;base64,

这个文本格式可以在浏览器中直接打开

编码示例

package main

import (
    "encoding/base64"
    "fmt"
)

func main() {

    data := []byte("Hello World")

    standardEncoded := base64.StdEncoding.EncodeToString(data)
    fmt.Println(standardEncoded)
    // SGVsbG8gV29ybGQ=
}

解码示例

package main

import (
    "encoding/base64"
    "fmt"
)

func main() {

    data := "SGVsbG8gV29ybGQ="

    // 适合于标准编码
    standardEncoded, _ := base64.StdEncoding.DecodeString(data)
    fmt.Println(string(standardEncoded))
    // Hello World
}

参考
Golang 中的 Base64 编解码