1. 程式人生 > >URLDecoder.decode(String str,String charSet)的大致實現原理

URLDecoder.decode(String str,String charSet)的大致實現原理

URL編碼 百分號編碼 URLDecoder.decode的大致實現原理

Java程式碼
  1. package com.dt.test;  
  2. import java.io.UnsupportedEncodingException;  
  3. import java.net.URLDecoder;  
  4. import java.net.URLEncoder;  
  5. /*** 
  6.  * URL編碼又叫百分號編碼 URLDecoder.decode的大致實現原理 
  7.  */  
  8. class testURLEncode {  
  9.     public void testURLEncode() {  
  10.         String testString;  
  11.         try {  
  12.             testString = URLEncoder.encode("中文""utf-8");  
  13.             System.out.println("testString : " + testString);  
  14.             testString = testString.replace("%""");  
  15.             int length = testString.length() / 2;  
  16.             byte[] data = new byte[length];  
  17.             for
     (int i = 0; i < length; i++) {  
  18.                 data[i] = (byte) Integer.parseInt(testString.substring(2 * i,  
  19.                         2 * i + 2), 16);  
  20.             }  
  21.             String result = new String(data, "utf-8");  
  22.             System.out.println("result : " + result);  
  23.         } catch
     (UnsupportedEncodingException e1) {  
  24.             // TODO Auto-generated catch block  
  25.             e1.printStackTrace();  
  26.         }  
  27.     }  
  28.     public void testURLEncodeGBK() {  
  29.         String testString;  
  30.         String testString0;  
  31.         try {  
  32.             testString = URLEncoder.encode("中文""utf-8");  
  33.             testString0 = testString;  
  34.             System.out.println("testString : " + testString);  
  35.             testString =  URLDecoder.decode(testString0,"GBK");  
  36.             System.out.println("decode : " + testString);  
  37.             testString =  URLDecoder.decode(testString0,"utf-8");  
  38.             System.out.println("decode : " + testString);  
  39.             testString =  URLEncoder.encode("中文""GBK");  
  40.             System.out.println("decode : " + testString);  
  41.             testString =  URLDecoder.decode(testString,"GBK");  
  42.             System.out.println("decode : " + testString);  
  43.         } catch (UnsupportedEncodingException e1) {  
  44. e1.printStackTrace();  
  45.         }  
  46.     }  
  47.     public static void main(String[] args) {  
  48.         new testURLEncode().testURLEncode();  
  49.         new testURLEncode().testURLEncodeGBK();  
  50.     }  
  51. url後引數的轉碼與解碼

    import java.net.URLDecoder;
    import java.net.URLEncoder;

      String strTest = "?=abc?中%1&2<3,4>";
      strTest = URLEncoder.encode(strTest, "UTF-8");
      System.out.println(strTest);
      strTest = URLDecoder.decode(strTest,"UTF-8");
      System.out.println(strTest);


執行結果:

%3F%3Dabc%3F%E4%B8%AD%251%262%3C3%2C4%3E
?=abc?中%1&2<3,4>