登录
首页 >  Golang >  Go问答

编码/解码base64

来源:Golang技术栈

时间:2023-04-14 08:32:30 101浏览 收藏

哈喽!今天心血来潮给大家带来了《编码/解码base64》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到golang,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

这是我的代码,我不明白为什么解码功能不起作用。

请稍有洞察力会很棒。

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]

正确答案

DecodedLen返回 最大 长度。

此长度对于调整缓冲区大小很有用,但缓冲区的一部分不会被写入,因此不是有效的 UTF-8。

您必须仅使用Decode函数返回的实际书面长度。

l, _ := base64.StdEncoding.Decode(base64Text, []byte(message))
log.Printf("base64: %s\n", base64Text[:l])

理论要掌握,实操不能落!以上关于《编码/解码base64》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表