這些字符都是不可打印的,自然需要進行轉化。 java urlencode轉碼工具軟件一些非ASCII字符,這些字符自然是非法的字符範圍,轉化也是理所當然的了。那麼,UrlDecode解碼使用方法是什麼呢?很多用戶非常想要知道哦,一起來看看吧!
ASP中的用法:Server.URLEncode內容
例如:<%response.writeServer.UrlEncode%>
PHP中的用法:urlencode內容
例如:<?echourlencode?>
JSP中的用法:URLEncoder.encode內容
例如:<% java.net.URLEncoder.encode%>
UrlDecode解碼主要對字符串進行URL解碼,返回已解碼的字符串;
ASP中的用法:Server.UrlDecode(“內容”)
例如:<%response.writeServer.UrlDecode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD")%>
PHP中的用法:urldecode(“內容”)
例如:<?echourldecode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD")?>
JSP中的用法:URLDecoder.decode(“內容”)
例如:<% java.net.URLDecoder.decode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD"); %>
當使用地址欄提交查詢參數時,如果不編碼,非英文字符會按照操作係統的字符集進行編碼提交到服務器,服務器會按照配置的字符集進行解碼,所以如果兩者不一致就會導致亂碼。
encodeURI函數采用UTF-8對URL 進行編碼,所以如果服務器在進行解碼時使用的是其他的編碼方式就會出現亂碼,默認的服務器配置的解碼字符集都不是UTF-8,所以大部分情況下地址欄提交 中文查詢參數時會產生亂碼;針對這種情況,可以連續使用兩次encodeURI在客戶端(主要指瀏覽器)對非英文字符進行編碼,然後在服務端使用 java.net.URLDecoder(String."UTF-8")解碼,即可得到正確的中文。
原理:如果隻進行一次encodeURI,得到的是UTF-8形式的URL,服務器端通過request.getParameter()解碼查詢參數(通常是iso-8859-1)就會得到亂碼。
如果進行兩次encodeURI,第一次編碼得到的是UTF-8形式的URL,第二次 編碼得到的依然是UTF-8形式的URL,但是在效果上相當於首先進行了一次UTF-8編碼(此時已經全部轉換為ASCII字符),再進行了一次iso- 8859-1編碼,因為對英文字符來說UTF-8編碼和ISO-8859-1編碼的效果相同。在服務器端,首先通過 request.getParameter()自動進行第一次解碼(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,對結果無影 響)得到ascii字符,然後再使用UTF-8進行第二次解碼,通常使用java.net.URLDecoder("","UTF-8")方法。
兩次編碼兩次解碼的過程為:UTF-8編碼->UTF-8(iso-8859-1)編碼->iso-8859-1解碼->UTF-8解碼,編碼和解碼的過程是對稱的,所以不會出現亂碼。