android Java BASE64編碼和解碼一:基礎


 今天在做Android項目的時候遇到一個問題,需求是向服務器上傳一張圖片,要求把圖片轉化成圖片流放在 json字符串里傳輸。

 類似這樣的: {"name":"jike","age":"20","pic":"圖片流"} ,

 把圖片轉化為圖片流要用到 Base64 的技術。

 

1、Base64  的作用

    主要不是加密,它主要的用途是把一些二進制數轉成普通字符用於網絡傳輸。
    由於一些二進制字符在傳輸協議中屬於控制字符,不能直接傳送需要轉換一下就可以了。

 

2、如何獲得BASE64 代碼,有兩種方式

   方式一:解決eclipse中無法直接使用Base64Encoder的問題

  •    今天要使用Base64Encoder,卻發現在Eclipse中無法找到該類,google了哈,原來Base64Encoder並不屬於JDK標准庫范疇,但是又包含在了JDK中。
  •    解決方法:按照如下方法設置Eclipse導入%JAVA_HOME%\jre\lib目錄下的rt.jar包即可,Project->Properties,選擇Java Build Path設置項,再選擇Libraries標簽,
  •    Add External Jars添加%JAVA_HOME%\jre\lib\rt.jar就可以使用啦!

     

    方式二: 下載源代碼,然后把代碼導入自己的項目中

        csdn下載地址: http://download.csdn.net/detail/yanzi2015/8685199

 

3、Base64對字符串進行編碼和解碼

   

package com.android20;

import sun.misc.BASE64Decoder;

public class Bian {

    //將 s 進行 BASE64 編碼 
    public static String getBASE64(String s) { 
        if (s == null) return null; 
        return (new sun.misc.BASE64Encoder()).encode( s.getBytes() ); 
    } 

    //將 BASE64 編碼的字符串 s 進行解碼 
    public static String getFromBASE64(String s) { 
        if (s == null) return null; 
        BASE64Decoder decoder = new BASE64Decoder(); 
        try { 
            byte[] b = decoder.decodeBuffer(s); 
            return new String(b); 
        } catch (Exception e) { 
            return null; 
        } 
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM