Ich habe eine Base64-kodierte Zeichenfolge, die wie "data:image/png;base64,iVBORw0K"
aussieht. Ich versuche, es wieder zu binär zu decodieren und es später erneut in Base64 zu kodieren, java.util.Base64
verwendend. Seltsamerweise würde ich nach dem Decodieren und erneutem Codieren die Begrenzer verlieren und "dataimage/pngbase64iVBORw0I="
zurückbekommen. DieseJava Base64 MIME-Dekodierung/Kodierung löst Delimiter
ist, wie ich tun, um die Decodierung und Codierung (in Scala geschrieben, aber Sie erhalten die Idee):
import java.util.Base64
val b64mime = "data:image/png;base64,iVBORw0K"
val decoder = Base64.getMimeDecoder
val encoder = Base64.getMimeEncoder
println(encoder.encodeToString(decoder.decode(b64mime)))
Hier ist ein Beispiel: https://scalafiddle.io/sf/TJY7eeg/0
Dies geschieht auch mit javax.xml.bind.DatatypeConverter
. Was mache ich falsch? Ist das das erwartete Verhalten?
Ich glaube nicht, dass der Decoder "erwartet" eine der Sachen bis zu und einschließlich dem Komma. Lesen Sie das Javadoc für die Methode sorgfältig. Welche Spezifikation (angeblich) stimmt diese Zeichenfolge? –