在Go语言中,使用标准库encoding/base64
可以很方便地进行字符串base64编码和解码。
下面是一个示例:
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// 要编码的字符串
str := "Hello, world!"
// 进行base64编码
encoded := base64.StdEncoding.EncodeToString([]byte(str))
fmt.Println("Base64 encoded string:", encoded)
// 进行base64解码
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
fmt.Println("Decode error:", err)
} else {
fmt.Println("Base64 decoded string:", string(decoded))
}
}
输出:
Base64 encoded string: SGVsbG8sIHdvcmxkIQ==
Base64 decoded string: Hello, world!
在上面的代码中,我们首先将字符串”Hello, world!“转换为字节数组,然后使用base64.StdEncoding.EncodeToString
函数对其进行编码。编码后的结果是一个字符串,我们将其打印出来。
接着,我们使用base64.StdEncoding.DecodeString
函数对编码后的字符串进行解码,得到原始的字节数组。如果解码失败,会返回一个错误。如果解码成功,我们将字节数组转换成字符串并打印出来。
需要注意的是,base64.Encoder
和base64.Decoder
类型也提供了更底层的API,可以自定义输入输出流或缓冲区大小等参数,更加灵活地使用base64编码和解码。