这是我的代码,我不明白为什么解码功能不起作用。
请少见识。
func EncodeB64(message string) (retour string) {
base64Text := make([]byte, base64.StdEncoding.EncodedLen(len(message)))
base64.StdEncoding.Encode(base64Text, []byte(message))
return string(base64Text)
}
func DecodeB64(message string) (retour string) {
base64Text := make([]byte, base64.StdEncoding.DecodedLen(len(message)))
base64.StdEncoding.Decode(base64Text, []byte(message))
fmt.Printf("base64: %s\n", base64Text)
return string(base64Text)
}
它给了我:[解码错误 - 输出不是 utf-8][解码错误 - 输出不是 utf-8]
原文由 Bussiere 发布,翻译遵循 CC BY-SA 4.0 许可协议
DecodedLen
返回 最大 长度。此长度对于调整缓冲区大小很有用,但不会写入缓冲区的一部分,因此不会是有效的 UTF-8。
您必须仅使用
Decode
函数返回的实际写入长度。