在web開發中通過(?)方式在瀏覽器地址欄傳值時,瀏覽器是通過“&”來區分參數個數及取值的,比如:
http://localhost/default.aspx?param1=10&5 ¶m2=20
假如說,我想取值param1中的10和5,然而因為&這個轉義字符的存在,會導致參數接受錯誤。
針對於轉義字符,可以這樣理解:
1. 它是一種特殊的字符常量,一般是用'\'加數字(8進制)來表示;
2. 它主要用於表示一般字符不便於表示的控制代碼,且用於消除緊隨其后的字符的原有含義
3. 用可以看見的字符表示不可見的字符,比如'\n'
舉一個這樣的例子,我想實現一個這樣的數據:
"phoneNum":"123456", "Name":"you"
編碼如下:
\"phoneNum\":\"123456\", \"Name\":\"you\"
同樣的,我可以再舉一個這樣的例子,在java中,我想講上述例子的數據中的'\'去掉,代碼實現如下:
String str = new String("\"phoneNum\":\"123456\", \"Name\":\"you\"");
String newStr = new String(str.replaceAll("\\\\",""));
其原因就是:在java中,'\'表示一個轉義字符,所以'\\'代表'\',而'\'正則表達式中的轉義字符(replaceAll 兩個的參數都是符合正則表達式規則),所以:'\\\\'被java轉換成 '\\' , '\\'又被正則表達式轉換成 '\'。
下面是一些URL特殊字符及編碼:
+ url中+表示空格 %2B
/ 分割目錄和子目錄 %20
? 分割實際的url和參數 %3F
% 指定特殊字符 %25
# 表示書簽 %23
& url中指定的參數的分隔符 %26
= url指定參數的值 %3D
想查看其它的,請參考: http://blog.csdn.net/sunhuwh/article/details/41809909
針對於以上數據,比如我想發送這樣的數據:
http://localhost/default.aspx?name=wang&num=10
轉換如下:
http://localhost/default.aspx%3fname%3dwang%26num%3d10
假如你在網上看到類似的網址,再想想轉義字符時,好像也不足為怪了。