我有一個Base64編碼的字符串,看起來像"data:image/png;base64,iVBORw0K"
。我試圖將其解碼回二進制文件,然後使用java.util.Base64
將它再次編碼爲Base64。奇怪的是,在再次解碼和編碼之後,我會失去分隔符並返回"dataimage/pngbase64iVBORw0I="
。Java Base64 MIME解碼/編碼拋出分隔符
這是我做的解碼和編碼(Scala寫的,但你的想法):
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)))
下面是一個例子:https://scalafiddle.io/sf/TJY7eeg/0
這也恰好與javax.xml.bind.DatatypeConverter
。我究竟做錯了什麼?這是預期的行爲?
我不認爲解碼器「期望」的任何東西,直到幷包括逗號。仔細閱讀javadoc的方法。該字符串(據說)符合什麼規範? –