2016-06-22 7 views
0

나는 아래의 코드에 무엇이 잘못된지 잘 알고 있습니다. base64 인코딩을 사용하여 JPG 파일을 인코딩하려고합니다. 인코딩 후 그것을 base64로 인코딩되어 검사 오전, false를 반환합니다. 나는 실종 된 것을 발견 할 수 없다. 도움 아래Base64 인코딩 및 디코딩 아파치 커먼

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; 

} 

참고 :

나는 인코딩하기 전에 및 디코딩 후 파일의 길이를 확인했습니다. 크기는 동일하게 유지됩니다. 그러나 파일을 열 수 없습니다.

답변

1

Arrays.toString()은 바이트 배열 [1, 2, 3]"[1, 2, 3]" 문자열을 반환합니다.

원하는 것은 new String(byteArray, "ASCII")입니다.

+0

도움 주셔서 감사합니다. – AKV