標籤: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中常用的編碼和解碼(加密和解密)的問題