2017-06-19 27 views
-3

android.util.Base64を使用してStringをエンコードおよびデコードしようとしていますが、ベース64エラーが発生します。AndroidのBase64デコード文字列

String str = "EOKF36syRBtB11VgyChkNjc1HxRrajT7XXaxZfnVzPkV57K3b9yqkS284Ovb9uWzXgGeY2bxA3IySGfdOHiPAQ==F/v6hcTiU1sd975XHfDsz8o0rboujM77n7KwRMidobOLbo5ghUT/IFcxElUc8CirdZxaCaS3zs/CfRKRsXwbFNYd"; 
Base64.decode(str,Base64.NO_WRAP); 

私は、次のフラグ(NO_CLOSE、DEFAULT、NO_PADDING、URL_SAFE)を使用して文字列をデコードしようとしていますが、それは同じエラーを与えます。

私の問題を解決するのを手伝ってください。

+0

Androidデバッグのルール1:_always_適切な回答を受け取る場合は、_always_エラーを貼り付けてください。私はここでテストし、メッセージ_encodedを持つ 'Base64DecoderException'を受け取ります。getValueは無効な末尾のbyte_を持ちます。これは、その時点でデコードされているチャンクが等号(' 61')または改行( '10')バイト。もしそれが本当に価値がある、あるいはもっと学びたいと思えば、 'Base64'クラスで何が行われているのかをデバッグ/ブレークでき、またBase64スペックをオンラインで見ることができます。 – davidcesarino

答えて

2

コード化された文字列が壊れているようです。オンラインbase64デコーダを使用して、変数 'str'で定義した文字列をデコードしてみてください。その結果、テキストが文字化けします。

+0

これ以上の詳細がなければ、これは私たちが答えることができる最高のようです。 – davidcesarino

1

置き、正しいbase64文字列と私はbase64で文字列を復号化するための方法の下に使用し、それが正常に動作します

String img = "your_base_64_string"; 
    byte[] decodedString = Base64.decode(img, Base64.DEFAULT); 
    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
4

以下のようにしてみてください。

private String decodeBase64(String coded){ 
    byte[] valueDecoded= new byte[0]; 
    try { 
     valueDecoded = Base64.decode(coded.getBytes("UTF-8"), Base64.DEFAULT); 
    } catch (UnsupportedEncodingException e) { 
    } 
    return new String(valueDecoded); 
} 
関連する問題