2017-06-19 3 views
-3

Ich versuche, eine Zeichenfolge mit android.util.Base64 zu codieren und zu dekodieren, aber es gibt eine schlechte Base-64-Fehler.Base64 decodieren Zeichenfolge in Android

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

Ich versuche, die Zeichenfolge mit folgenden Flags (NO_CLOSE, STANDARD, NO_PADDING, URL_SAFE), aber es gibt die gleichen Fehler zu entschlüsseln.

Bitte helfen Sie mir, mein Problem zu lösen.

+0

Regel # 1 von Android-Debugging: _always_ fügen Sie Ihren Fehler ein, wenn Sie gute Antworten erhalten möchten. Ich habe hier getestet und erhalte eine 'Base64DecoderException' mit der Nachricht _encoded getValue hat ein ungültiges hinteres Byte_, was bedeutet, dass der zu dieser Zeit dekodierte Chunk nicht durch ein Gleichheitszeichen (' 61') oder eine neue Zeile ('10') abgeschlossen wird Byte. Wenn es das wirklich wert ist - oder mehr erfahren wollen - können Sie debuggen/breakpoint, was in der Base64-Klasse gemacht wird, und die Base64-Spezifikation online sehen. – davidcesarino

Antwort

2

Ihre codierte Zeichenfolge scheint beschädigt zu sein. Versuchen Sie, den String, den Sie in der Variable 'str' definiert haben, mit einem Online-Base64-Decoder zu dekodieren. Das Ergebnis ist verstümmelter Text.

+0

Ohne weitere Details scheint dies das Beste zu sein, was wir beantworten können. – davidcesarino

1

Platz ein korrektes base64 String und versucht, wie unten

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

I unten Methode verwenden base64-Strings zur Decodierung und es funktioniert gut.

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); 
} 
Verwandte Themen