Go:Base64解码有什么问题

时间:2015-11-14 01:43:53

标签: go base64

我尝试在Go中解码一个有效的(基于我的理解)base64编码的字符串:

    <p id="tooltip"><img src="YOURIMAGE" /><a href="#" 
        style="text-decoration: none;"><img src="TOOLTIPIMAGE" alt="" 
        width="20" height="20" border="0" style="margin: 2px 0px 0px 
        2px" /><span>DESCRIPTION YOU WANT SHOWN</span></a></p>

完整example is here。我有一个字符串data, err := base64.StdEncoding.DecodeString(s) if err != nil { ... } ,可以正确解码,例如here 或者甚至在浏览器的"eyJlbWFpbF9hZGRyZXNzIjoiIiwiZXhwIjoxNDQ3NzIzMzY4LCJmaXJzdG5hbWUiOiIiLCJpYXQiOjE0NDc0NjQxNjgsImlzcyI6Imh0dHA6Ly91ZGFjaXR5LmNvbSIsImtpZCI6ImE3ZTg5ZWQyMSIsImxhc3RuYW1lIjoiIiwidXNlcl9pZCI6IjEyMzQ1Njc4IiwidXNlcm5hbWUiOiJoYW5zb2xvQGhvdGguY29tIn0"控制台中,但出于某种原因抱怨:

atob(that_string);

注意,我可以解码其他一些字符串。那么为什么我不能在Go?

中base64decode一个有效的编码字符串

1 个答案:

答案 0 :(得分:6)

您的输入没有padding。因此,您应该使用base64.RawStdEncoding over base64.StdEncoding

data, err := base64.RawStdEncoding.DecodeString(s)

示例:https://play.golang.org/p/ZWfzYXQ5Ye