java.lang.IllegalArgumentException: ungültige base-64
Ich versuche zum codieren und decodieren einer Zeichenfolge mit android.util.Base64 kodiert ist, aber es gibt eine schlechte base-64-Fehler.
Den code mit dem problem ist:
private byte[] base64ToByte(String str) throws IOException {
Log.i("encription", str);
byte[] returnbyteArray = Base64.decode(str, Base64.URL_SAFE);
return returnbyteArray;
}
Den Fehler logcat ist:
08-09 13:02:18.589: E/AndroidRuntime(29827): Process: com.example.maptest, PID: 29827
08-09 13:02:18.589: E/AndroidRuntime(29827): java.lang.IllegalArgumentException: bad base-64
08-09 13:02:18.589: E/AndroidRuntime(29827): at android.util.Base64.decode(Base64.java:161)
08-09 13:02:18.589: E/AndroidRuntime(29827): at android.util.Base64.decode(Base64.java:136)
08-09 13:02:18.589: E/AndroidRuntime(29827): at android.util.Base64.decode(Base64.java:118)
08-09 13:02:18.589: E/AndroidRuntime(29827): at com.example.maptest.security.Encription.base64ToByte(Encription.java:116)
08-09 13:02:18.589: E/AndroidRuntime(29827): at com.example.maptest.security.Encription.encode(Encription.java:103)
08-09 13:02:18.589: E/AndroidRuntime(29827): at android.os.Handler.dispatchMessage(Handler.java:102)
08-09 13:02:18.589: E/AndroidRuntime(29827): at android.os.Looper.loop(Looper.java:136)
08-09 13:02:18.589: E/AndroidRuntime(29827): at android.app.ActivityThread.main(ActivityThread.java:5081)
08-09 13:02:18.589: E/AndroidRuntime(29827): at java.lang.reflect.Method.invokeNative(Native Method)
08-09 13:02:18.589: E/AndroidRuntime(29827): at java.lang.reflect.Method.invoke(Method.java:515)
08-09 13:02:18.589: E/AndroidRuntime(29827): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
08-09 13:02:18.589: E/AndroidRuntime(29827): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-09 13:02:18.589: E/AndroidRuntime(29827): at dalvik.system.NativeStart.main(Native Method)
Den input(den str-String aus dem code) sieht so aus:
08-09 13:02:18.539: I/encription(29827): 26.919047981500626
Es ist ein double in einen string umgewandelt, mit:
String.valueOf(number)
Der Fehler ist persistent, alle encoding-Optionen (STANDARD, NO_WRAP, etc), jede Hilfe wäre apreciated, danke.
Können Sie bitte per post der String-Wert?
Versuchen Sie
Der string-Wert ist wie gesagt 29.919047981500626 was ist der Wert von String str, und als ich sagte, dass ich alles versucht (NO_WRAP, VERZUG, etc, etc) jede einzelne Flagge
Versuchen Sie
Base64.NO_WRAP
Der string-Wert ist wie gesagt 29.919047981500626 was ist der Wert von String str, und als ich sagte, dass ich alles versucht (NO_WRAP, VERZUG, etc, etc) jede einzelne Flagge
InformationsquelleAutor Alexandru Patriche | 2014-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie versuchen, decodieren
26.919047981500626
die Sie nicht können. Weil es nicht ein Gültiger base64-kodierten string.In diese online base64 decoder, gibt es diese Fehlermeldung:
Update:
Wenn Sie wissen möchten, den gültigen Formatierung von a-codiert base64-string, werfen Sie einen Blick auf die Tabelle in der wikipedia-Artikel und auch diese Antwort das zeigt ein base64-validator code in C#.
Siehe mein update. Aber ich verstehe immer noch nicht, was Sie versuchen, hier zu erreichen... Wenn Sie möchten, eine gültige Base64-kodierten string, legen Sie einfach eine beliebige Zeichenfolge in dieser Seite codieren Sie es für Sie.
InformationsquelleAutor Mahm00d
Traf es mich, wenn in jedem Fall, die Ihr aufteilen der Daten - & die Codierung, dann decodieren Sie es zuerst, bevor Sie es wieder zusammen.. Blöderweise war ich dabei decodieren nach der Sortierung der Daten, die left me "bad-base-64 -" da jeder block von Daten zu verschlüsseln, die Datei hatte enders(==).
Dies ist Linkist praktisch sowieso zur Validierung der Kodierung und Dekodierung.
InformationsquelleAutor Abhijeet
entfernen Sie die Präfix-string " data:image/png;base64, ", die Zeichenfolge nach "data:image/png;base64,", die es Dekodieren kann
InformationsquelleAutor edo