[英]Base64 encoding and decoding apache commons
我注意到下面的代碼肯定有問題。 我正在嘗試使用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 Photo Viewer無法打開消息。 下面是代碼。
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;
}
注意:
我已經在編碼之前和解碼之后驗證了文件的長度。 大小保持不變。 但是文件無法打開。
字節數組[1, 2, 3]
上的Arrays.toString()
返回字符串"[1, 2, 3]"
。
您想要的是new String(byteArray, "ASCII")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.