gpt4 book ai didi

java - Base64 编码和解码 apache commons

转载 作者:行者123 更新时间:2023-12-01 09:46:30 25 4
gpt4 key购买 nike

我确定下面的代码有什么问题。我正在尝试使用 Base64 编码对 JPG 文件进行编码。编码后我检查它是否是 base64 编码的,它返回 false。我无法找到我缺少的东西。

    public String  encodeBinary64(String value){
String output = null;
System.out.println("encoding the binary length "+value.length());

byte[] byteArray = Base64.encodeBase64(value.getBytes());
output = Arrays.toString(byteArray);

System.out.println("output length encoding"+output.length());
Boolean base64Encoded = Base64.isBase64(output); -- returning FALSE

System.out.println("Base 64 Encoded "+ base64Encoded );


return output;

}

更新2

下面建议的解决方案有所帮助。但是,在解码 Base64 编码图像后,当我尝试打开时,收到 Windows 照片查看器无法打开 消息。下面是代码。

         public String  decodeBinary64(String value){
String output = null;
System.out.println("Decoding the binary length "+value.length());

Boolean base64Encoded = Base64.isBase64(value);
System.out.println("base64Encoded "+base64Encoded);
if(base64Encoded){
byte[] byteArray = Base64.decodeBase64(value.getBytes());
try {
output = new String(byteArray, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("output length "+output.length());
}


return output;

}

注意:

我已经验证了编码前和解码后文件的长度。大小保持不变。但该文件无法打开。

最佳答案

Arrays.toString(),在字节数组 [1, 2, 3] 上,返回字符串 "[1, 2, 3] “

你想要的是new String(byteArray, "ASCII")

关于java - Base64 编码和解码 apache commons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37973847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com