golang函数 base64.StdEncoding.Decode
时间: 2024-09-13 20:16:14 浏览: 41
在Go语言中,`base64.StdEncoding.Decode` 函数是标准库 `encoding/base64` 中的一个函数,用于将base64编码的数据解码成原始数据。这个函数使用标准的base64编码表进行解码。
函数的定义如下:
```go
func (enc *Encoding) Decode(dst, src []byte) (int, int, error)
```
这里的参数解释如下:
- `dst`:一个字节切片,用于存放解码后的数据。
- `src`:一个字节切片,包含要解码的base64编码数据。
- 返回值:
- 第一个返回值是解码后的字节切片的实际长度。
- 第二个返回值是输出到`dst`切片中的字节数。
- 第三个返回值是可能的错误信息。
如果解码成功,函数返回解码后的字节切片的实际长度和输出到`dst`切片中的字节数。如果源数据不是有效的base64编码,或者解码后的数据长度超过了`dst`的容量,则会返回错误。
下面是一个使用`base64.StdEncoding.Decode`函数的例子:
```go
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// 编码字符串
encoded := "SGVsbG8gV29ybGQh" // "Hello World!"的base64编码
// 解码
decoded := make([]byte, base64.StdEncoding.DecodedLen(len(encoded)))
n, m, err := base64.StdEncoding.Decode(decoded, []byte(encoded))
if err != nil {
fmt.Println("解码错误:", err)
return
}
fmt.Printf("解码后的数据: %s\n", decoded[:n])
fmt.Printf("输出到dst切片中的字节数: %d\n", m)
}
```
阅读全文