?
SEO名詞百科 - 投稿申請 - 關于小六 - 網站地圖 不懂SEO,不懂網站優化從何入手?到重慶SEO【小六】SEO教程自學網,小六在這里狂甩SEO干貨,助你自學成才!
當前位置:apex英雄多少钱 > 建站知識 > 正文

apex英雄和彩虹六号哪个配置高:urlencode編碼/urldecode解碼作用及使用方法

時間:2017-09-29 11:02:00 來源:原創 作者:小六SEO 閱讀:次
    urlencode和urldecode釋義
    urlencode是一個函數,可將字符串以URL編碼,用于編碼處理。
    URL編碼(URL encoding),也稱作百分號編碼(Percent-encoding), 是特定上下文的統一資源定位符 (URL)的編碼機制。
    urlencode適用于統一資源標識符(URI)的編碼,也用于為"application/x-www-form-urlencoded" MIME準備數據, 因為它用于通過HTTP的請求操作(request)提交HTML表單數據。
    urldecode函數對字符串進行URL解碼。例如通過urlencode編碼后的字符串,可通過UrlDecode進行解碼。對Url路徑加碼的函數是UrlEncode 用法相反,和UrlDecode是一致對應的。

    基本原理:
    urlencode()函數原理就是首先把中文字符轉換為十六進制,然后在每個字符前面加一個標識符%。
    urldecode()函數與urlencode()函數原理相反,用于解碼已編碼的 URL 字符串,其原理就是把十六進制字符串轉換為中文字符。

    怎么進行URLEncode編與URLDecode解碼?
    UrlEncode編碼主要用于將字符串以URL編碼,返回一個字符串
    使用方法:
    1、ASP中的用法:Server.URLEncode(“內容”)
    例如:
    <%response.writeServer.UrlEncode("小六SEO博客")%>

    2、PHP中的用法:urlencode(“內容”)
    例如:
    <?echourlencode("小六SEO博客")?>

    3、JSP中的用法:URLEncoder.encode(“內容”)
    例如:
    <% java.net.URLEncoder.encode("小六SEO博客");  %>

    UrlDecode解碼主要對字符串進行URL解碼,返回已解碼的字符串
    1、ASP中的用法:Server.UrlDecode(“內容”)
    例如:
    <%response.writeServer.UrlDecode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD")%>

    2、PHP中的用法:urldecode(“內容”)
    例如:
    <?echourldecode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD")?>

    3、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解碼,編碼和解碼的過程是對稱的,所以不會出現亂碼。

    以上內容整理于互聯網資源,僅供大家參考。
    本文由小六SEO整理發布,轉載請注明來源。

apex英雄多少钱 www.isrgj.icu (責任編輯:小六SEO)

頂一下
(17)
89.5%
踩一下
(2)
10.5%

版權聲明:

1、本文由apex英雄多少钱作者-小六SEO原創發布,保留著作所有權,轉載請注明來源,否則謝絕轉載;
2、非原創內容會有明確作者及來源標注。

?