[英]Go: what's wrong with Base64 decode
我嘗試使用以下命令解碼有效的(基於我的理解)base64編碼的字符串:
data, err := base64.StdEncoding.DecodeString(s)
if err != nil {
...
}
一個完整的例子在這里 。 我有一個字符串"eyJlbWFpbF9hZGRyZXNzIjoiIiwiZXhwIjoxNDQ3NzIzMzY4LCJmaXJzdG5hbWUiOiIiLCJpYXQiOjE0NDc0NjQxNjgsImlzcyI6Imh0dHA6Ly91ZGFjaXR5LmNvbSIsImtpZCI6ImE3ZTg5ZWQyMSIsImxhc3RuYW1lIjoiIiwidXNlcl9pZCI6IjEyMzQ1Njc4IiwidXNlcm5hbWUiOiJoYW5zb2xvQGhvdGguY29tIn0"
,它可以正確解碼例如這里在瀏覽器的控制台,甚至atob(that_string);
,但出於某些原因,請投訴:
illegal base64 data at input byte 236
注意,我可以解碼其他一些字符串。 那么,為什么不能在Go中對base64解碼一個有效的編碼字符串呢?
您的輸入沒有任何填充 。 因此,你應該使用base64.RawStdEncoding
超過base64.StdEncoding
:
data, err := base64.RawStdEncoding.DecodeString(s)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.