URL中特殊字元(+?%#&=/)的處理
阿新 • • 發佈:2019-01-28
在url中直接使用一些特殊字元,在伺服器端接收的時候經常出現數據丟失的情況。
那麼哪些字元能夠直接被伺服器識別,哪些有不能呢?
字元“a-z”,”A-Z”,”0-9”,”.”,”-“,”_”,”*”都會直接被伺服器識別,維持原值。
然而,字元”+”,”/”,”?”,”%”,”#”,”&”,”=”都將被轉碼。那麼我們就需要轉碼來讓伺服器進行識別。
- “+” url中+號的表示空格 轉化 %2B
- “/” 用來分割目錄和子目錄 轉化 %2F
- “?” 用來分割請求的url和引數 轉化 %3F
- “%” 用來指定特殊字元 轉化 %25
- “#” 用來表示書籤 轉化 %23
- “&” 用來表示url中指定的引數間的分割符 轉化%26
- “=” 用來表示url中指定的引數的值 轉化 %3D
- “” url中的空格可以用+號或編碼 轉化%20
比如,我想讓服務端識別的url為:127.0.0.1:8080/user.do?name=a12+%
那麼,我應該在位址列輸入為:127.0.0.1:8080/user.do?name=a12%2B%25
在java中提供了對url的編碼和解碼:
編碼:java.net.URLEncoder.encode(url,”UTF-8”);
解碼:java.net.URLDecoder.decode(url,”UTF-8”);