Go提供对base64
编码/解码的内置支持。导入带有b64
名称的encoding/base64
软件包,而不是默认的base64
。它会节省我们一些空间。Go支持标准和URL兼容的base64
。 以下是使用标准编码器进行编码的方法。编码器需要一个[]byte
,所以将字符串转换为该类型。
所有的示例代码,都放在
F:\worksp\golang
目录下。安装Go编程环境请参考:/tutorial/detail-5562.html
base64-encoding.go
的完整代码如下所示 -
package main // This syntax imports the `encoding/base64` package with // the `b64` name instead of the default `base64`. It'll // save us some space below. import b64 "encoding/base64" import "fmt" func main() { // Here's the `string` we'll encode/decode. data := "abc123!?$*&()'-=@~" // Go supports both standard and URL-compatible // base64. Here's how to encode using the standard // encoder. The encoder requires a `[]byte` so we // cast our `string` to that type. sEnc := b64.StdEncoding.EncodeToString([]byte(data)) fmt.Println(sEnc) // Decoding may return an error, which you can check // if you don't already know the input to be // well-formed. sDec, _ := b64.StdEncoding.DecodeString(sEnc) fmt.Println(string(sDec)) fmt.Println() // This encodes/decodes using a URL-compatible base64 // format. uEnc := b64.URLEncoding.EncodeToString([]byte(data)) fmt.Println(uEnc) uDec, _ := b64.URLEncoding.DecodeString(uEnc) fmt.Println(string(uDec)) }
执行上面代码,将得到以下输出结果 -
F:\worksp\golang>go run base64-encoding.go YWJjMTIzIT8kKiYoKSctPUB+ abc123!?$*&()'-=@~ YWJjMTIzIT8kKiYoKSctPUB- abc123!?$*&()'-=@~