Android中常用的編碼和解碼(加密和解密)的問題

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   ar   color   os   sp   

 

1. URL Encoding 

  

編碼目的是為了在?址上可以包含中文等特殊字元
解碼是為了把編碼後的內容還原成原始的內容
格式如下%9C%3C%F3%98 規則: %hex_byte
就是將實際的位元組轉換為十六進位進行顯示
編碼URLEncoder.encode(String str, String charset)
解碼 URLDecoder.encode(String str, String charset)

eg.    %E6%88%91%E6%98%AFvhly%EF%BC%8C%E4%BD%A0%E6%98%AF%E8%B0%81%3F 該字串代表什麼內容?

 1  @Override 2     protected void onCreate(Bundle savedInstanceState) { 3         super.onCreate(savedInstanceState); 4         setContentView(R.layout.activity_main); 5          6         /**  解碼示範 */ 7          8         //解碼之前的字串 9         String str1= " %E6%88%91%E6%98%AFvhly%EF%BC%8C%E4%BD%A0%E6%98%AF%E8%B0%81%3F";10         //解碼之後的字串11         try {12             String str2= URLDecoder.decode(str1,"UTF-8");13             Log.v("TAG", "str2="+str2); //str2= 我是vhly,你是誰?14 15         } catch (UnsupportedEncodingException e) {16             // TODO Auto-generated catch block17             e.printStackTrace();18         }19         20         /** 編碼示範*/21         String str3 = "It‘s Don!";22         try {23             String str4 = URLEncoder.encode(str3, "UTF-8");24             Log.v("TAG", "str4="+str4); //str4=It%27s+Don%2125 26         } catch (UnsupportedEncodingException e) {27             // TODO Auto-generated catch block28             e.printStackTrace();29         }30     31     }
View Code

 

2.Base64

       包含大小寫英文字母,10個數字,以及= + 的編碼格式

 1.Base64能夠把二進位的檔案轉換為文字檔
2.把整個內容全部轉換為可以顯?的字串
3.包含編碼和解碼,主要?於用戶端與伺服器傳圖?
4.編碼android.util.Base64.encodeToString(byte[], int)
5.解碼android.util.Base64.decode(String, int)


常見的編解碼工具

    Android 內建 android.util.Base64
   Apache Common Codec 類庫 Base64

eg. 5L2g5piv6LCBPw== 這個字串的內容是什嗎?

 1 import java.net.URLDecoder; 2 import java.net.URLEncoder; 3  4 import android.util.Base64; 5 @Override 6     protected void onCreate(Bundle savedInstanceState) { 7         super.onCreate(savedInstanceState); 8         setContentView(R.layout.activity_main); 9         10         /**  解碼示範 */11         12         //解碼之前的字串13         String str1= "5L2g5piv6LCBPw==";14         //解碼之後的字串15         try {16             byte[] bytes = Base64.decode(str1, Base64.NO_WRAP);17             String str2= new String(bytes,"UTF-8");18             Log.v("TAG", "str2="+str2); //str2=你是誰?19 20 21         } catch (UnsupportedEncodingException e) {22             e.printStackTrace();23         }24         25         /** 編碼示範*/26         String str3 = "I love Android!";27         try {28             String str4 = Base64.encodeToString(str3.getBytes("UTF-8"), Base64.NO_WRAP);29             Log.v("TAG", "str4="+str4); // str4=SSBsb3ZlIEFuZHJvaWQh30 31         } catch (UnsupportedEncodingException e) {32             // TODO Auto-generated catch block33             e.printStackTrace();34         }35     36     }
View Code

 

Android中常用的編碼和解碼(加密和解密)的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.