URLEncoder编码
客戶端在進行網頁請求的時候,網址中可能會包含非ASCII碼形式的內容,比如中文。
而直接把中文放到網址中請求是不允許的,所以需要用URLEncoder編碼地址,
將網址中的非ASCII碼內容轉換成可以傳輸的字符
?
不會被編碼的內容
1.大寫字母A-Z
2.小寫字母a-z
3.數字 0-9
4.標點符 - _ . ! ~ * ' (和 ,)
?
?
二、編碼原理
1、將需要轉換的內容(ASCII碼形式之外的內容),用十六進制表示法轉換出來,并在之前加上%開頭
eg: ?0x9c ?URLEncoder --> %9c
2、內容中的空格‘ ’ ,全部用+代替
3、注:與Hex不同,Hex是將所有的字符轉換為16進制表示,而URLEncoder是將ASCII碼集之外的轉換為%加上相應的16進制,而ASCII碼集內的字符不進行處理
?
三、應用場景
1、所有的GET請求
2、網址中有中文等情況
3、POST請求,所有的Key和Value在提交之前都要經過URLEncoder
?
四、示例
try {String a = URLEncoder.encode("a", "UTF-8");Log.i("encode","a 進行URLEncoder編碼后-->"+a );String b = URLEncoder.encode("a中", "UTF-8");Log.i("encode","a中 進行URLEncoder編碼后-->"+b );String decode = nURLDecoder.decode("a%E4%B8%AD", "UTF-8");Log.i("encode","a%E4%B8%AD 進行URLDecoder解碼后-->"+decode); } catch (UnsupportedEncodingException e) {e.printStackTrace(); }運行結果:
10-17 07:33:14.357 1012-1012/com.xqx.encrypsthow I/encode﹕ a 進行URLEncoder編碼后-->a
10-17 07:33:14.367 1012-1012/com.xqx.encrypsthow I/encode﹕ a中 進行URLEncoder編碼后-->a%E4%B8%AD
10-17 07:33:14.377 1012-1012/com.xqx.encrypsthow I/encode﹕ a%E4%B8%AD 進行URLDecoder解碼后-->a中
轉載于:https://www.cnblogs.com/bimingcong/p/5663781.html
總結
以上是生活随笔為你收集整理的URLEncoder编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李连杰年度巨作霍元甲主题曲:周杰伦唱
- 下一篇: Inherts