在Java中解码Base64string

我试图解码一个简单的Base64string,但无法这样做。 我目前使用org.apache.commons.codec.binary.Base64包。

我使用的testingstring是: abcdefg ,使用PHP YWJjZGVmZw==编码。

这是我目前使用的代码:

 Base64 decoder = new Base64(); byte[] decodedBytes = decoder.decode("YWJjZGVmZw=="); System.out.println(new String(decodedBytes) + "\n") ; 

上面的代码不会引发错误,但不会按预期输出解码的string。

修改您使用的软件包:

 import org.apache.commons.codec.binary.Base64; 

然后像这样使用它:

 byte[] decoded = Base64.decodeBase64("YWJjZGVmZw=="); System.out.println(new String(decoded, "UTF-8") + "\n"); 

通常base64用于图像。 如果你喜欢解码一个图像(在这个例子中的JPG与org.apache.commons.codec.binary.Base64包):

 byte[] decoded = Base64.decodeBase64(imageJpgInBase64); FileOutputStream fos = null; fos = new FileOutputStream("C:\\output\\image.jpg"); fos.write(decoded); fos.close(); 

以下应该与最新版本的Apache通用编解码器一起工作

 byte[] decodedBytes = Base64.getDecoder().decode("YWJjZGVmZw=="); System.out.println(new String(decodedBytes)); 

和编码

 byte[] encodedBytes = Base64.getEncoder().encode(decodedBytes); System.out.println(new String(encodedBytes));