簡體   English   中英

開始:Base64解碼有什么問題

[英]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)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM