我尝试在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一个有效的编码字符串答案 0 :(得分:6)
您的输入没有padding。因此,您应该使用base64.RawStdEncoding
over base64.StdEncoding
:
data, err := base64.RawStdEncoding.DecodeString(s)