簡體   English   中英

Base64編碼和解碼Apache公用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM