1.是因為當字串資料以url的形式傳遞給web伺服器時,字串中是不允許出現空格和特殊字元的因為 url 對字元有限制,比如把乙個郵箱放入 url,就需要使用2.
urlencode
函式,因為 url 中不能包含@
字元。
3.url轉義其實也只是為了符合url的規範而已。因為在標準的url規範中中文和很多的字元是不允許出現在url中的。
1. ascii 的控制字元
這些字元都是不可列印的,自然需要進行轉化。
2. 一些非ascii字元
這些字元自然是非法的字元範圍。轉化也是理所當然的了。
3. 一些保留字元
很明顯最常見的就是「&」了,這個如果出現在url中了,那你認為是url中的乙個字元呢,還是特殊的引數分割用的呢?
4. 就是一些不安全的字元了。
例如:空格。為了防止引起歧義,需要被轉化為「+」。
明白了這些,也就知道了為什麼需要轉化了,而轉化的規則也是很簡單的。
按照每個字元對應的字元編碼,不是符合我們範圍的,統統的轉化為%的形式也就是了。自然也是16進製制的形式。
和字元編碼無關
通過urlencode的轉化規則和目的,我們也很容易的看出,urleocode是基於字元編碼的。同樣的乙個漢字,不同的編碼型別,肯定對應不同的urleocode的串。gbk編碼的有gbk的encode結果。
apache等伺服器,接受到字串後,可以進行decode,但是還是無法解決編碼的問題。編碼問題,還是需要靠約定或者字元編碼的判斷解決。
因此,urleocode只是為了url中一些非ascii字元,可以正確無誤的被傳輸,至於使用哪種編碼,就不是encode所關心和解決的問題了。
編碼問題,不是urlencode所要解決的。
為什麼要用urlEncode編碼
之所以使用它進行編碼,是因為當字串資料以url的形式傳遞給web伺服器時,字串中是不允許出現空格和特殊 字元的 這句話意思是不是 1.字串中如果有空格或者特殊字元,傳輸就會出現錯誤.要想讓伺服器不出錯,正常顯示空格和特殊字元的話,就必須使用server.urlencode編碼來傳輸.是這個意思嗎?2...
為什麼要選擇ISP 為什麼要選擇AHD
在影象傳輸中,我們為什麼選擇nextchip?為什麼要選擇isp?為什麼要選擇ahd?為什麼選擇北京冠宇銘通?這個問題我倒著回答各位 一 北京冠宇銘通科技是nextchip目前為止唯一一家正式官方授權 車載產品廠家之一 二 ahd和其他幾種傳輸方式相比,擁有自己的專利,其他幾家有專利的沒有幾個,如果...
為什麼要分詞
這裡不討論這個問題,我要說的為什麼要分詞?分詞是什麼!有人問 分詞有什麼作用啊?某人答 搜尋引擎要用到中文分詞,所以非常重要 這完全是廢話,說了等於沒說。搜尋引擎又為什麼要分詞呢?其實一般意思上指的分詞是比較狹隘的意思,指中文的詞是怎樣劃分的。因為中文沒有空格,所以要理解一篇文 章,你首先當然要切分...