2017-01-25 9 views
1

私は、Goでデコードする必要があるURLセーフエンコード文字列(Perl製)を持っています。 ここにはPerlとGoの2つのプログラムがあります。Perlは正常に動作しますが、Goはエラーを起こします。 私はそれを理解できません。 助けてください!Perlでコード化されたGoでSafe64デコードBase64を使用するには?

=== Perlコードは - コードを行く===細かい

#!/usr/bin/env perl 
use common::sense; 
use MIME::Base64::URLSafe; 

my $str = 'Oi6cQzmolrUhkgHsNehtj9p_OsasB_6CIeygK0owoxTsXCtVWyQi-7DXxIJiaV-kSc6PGNC6uNz5V0A9QOGCaeCy6PolQY2Lt_v4JM42VEbsuML8guHfMO0ydvbXVcCR-yLfkz5CO0f-P1hVqxJBD8qPvk1t1DRzqmHP41DSfIm_WzlhtITnd_Wjt6E3CFS78HL3XjJlM-QBW9Z_GZgic8y7TlOWFzCRUf2Q-EZschrDi9l81E93XBNKe8knInL_uFN_oK_ob7fjnkGJO54RNn3coVsrzuIoNa6AI6oWLfsaJ5NyQYor5P0'; 

say urlsafe_b64decode($str); 

に動作します - デコードリターンが切り捨てられ、結果としてエラー

package main 

import (
    b64 "encoding/base64" 
    "fmt" 
) 

func main() { 
    str := "Oi6cQzmolrUhkgHsNehtj9p_OsasB_6CIeygK0owoxTsXCtVWyQi-7DXxIJiaV-kSc6PGNC6uNz5V0A9QOGCaeCy6PolQY2Lt_v4JM42VEbsuML8guHfMO0ydvbXVcCR-yLfkz5CO0f-P1hVqxJBD8qPvk1t1DRzqmHP41DSfIm_WzlhtITnd_Wjt6E3CFS78HL3XjJlM-QBW9Z_GZgic8y7TlOWFzCRUf2Q-EZschrDi9l81E93XBNKe8knInL_uFN_oK_ob7fjnkGJO54RNn3coVsrzuIoNa6AI6oWLfsaJ5NyQYor5P0" 

    fmt.Println("source B64:", str) 
    _, err := b64.URLEncoding.DecodeString(str) 

    if err != nil { 
     fmt.Println("error b64:", err) 
    } 
} 

=== END

を上がることは不可能です次のステップでそれを使用する。

答えて

1

使用RawURLEncodingパディングありません:

_, err := b64.RawURLEncoding.DecodeString(str) 
+0

ソリューションを働いているように見えます。ありがとうございました! – Demiurg

関連する問題