我试图解码一个有效的(根据我的理解) base64编码的字符串:
data, err := base64.StdEncoding.DecodeString(s)
if err != nil {
...
}一个完整的例子就在这里。我有一个字符串"eyJlbWFpbF9hZGRyZXNzIjoiIiwiZXhwIjoxNDQ3NzIzMzY4LCJmaXJzdG5hbWUiOiIiLCJpYXQiOjE0NDc0NjQxNjgsImlzcyI6Imh0dHA6Ly91ZGFjaXR5LmNvbSIsImtpZCI6ImE3ZTg5ZWQyMSIsImxhc3RuYW1lIjoiIiwidXNlcl9pZCI6IjEyMzQ1Njc4IiwidXNlcm5hbWUiOiJoYW5zb2xvQGhvdGguY29tIn0",它可以被正确地解码(例如,这里,甚至在浏览器的控制台中也可以使用atob(that_string); ),但是出于某种原因,可以使用以下方法进行处理:
illegal base64 data at input byte 236
注意,我可以解码其他字符串。那么为什么我不能在Go中base64decode一个有效的编码字符串呢?
发布于 2015-11-14 01:47:19
您的输入没有任何填充。因此,您应该使用base64.StdEncoding
data, err := base64.RawStdEncoding.DecodeString(s)https://stackoverflow.com/questions/33704251
复制相似问题