Url引數中出現+、空格、=、%、&、#等字元的解決辦法
Url出現了有+,空格,/,?,%,#,&,=等特殊符號的時候,可能在伺服器端無法獲得正確的引數值,抑或是造成不能正常下載檔案(作為Download Url時候),如何是好?解決辦法:就是需要將這些字元轉化成伺服器可以識別的字元;但是為何Url中有這些字元就會出現問題呢?這就得涉及到URL編碼與解碼問題了。
URL編碼與解碼
一般來說,URL只能使用英文字母、阿拉伯數字和某些標點符號,不能使用其他文字和符號。Url的編碼格式採用的是ASCII碼,而不是Unicode,這也就是說你不能在Url中包含任何非ASCII字元,例如希臘字母or中文。比如,世界上有英文字母的網址http://www.abc.com
只有字母和數字[0-9a-zA-Z]、一些特殊符號”$-_.+!*’(),”[不包括雙引號]、以及某些保留字,才可以不經過編碼直接用於URL。
這意味著,如果URL中有漢字,等特殊字元的時候,就必須編碼後使用。而+,空格,/,?,%,#,&,=,這些字元(不安全),當把他們直接放在Url中的時候,可能會引起解析程式的歧義,因此也必須經過編碼才能使用。
解決辦法
將這些字元轉化成伺服器可以識別的字元,對應關係如下: