url中的特殊字符+ % # & = ? /無法被後端解析解解決方法

項目中有一個接口是用GET方法接收參數的,測試的時候發現當URL的參數中出現 + 號的時候,傳到後端 + 號全都變成了空格了。
然後從網上找到了原因:URL參數中是不能出現+ % # & = ? /等特殊字符的,因爲這些字符在URL中有默認的含義,比如&在URL中表示參數間的分隔符,如果不將&轉義而直接放在GET請求的參數裏,後端的Tomcat就會以這個&爲分隔符將參數拆分掉。
如果要傳遞這些特殊字符給後端,需要將它們轉義。轉碼的格式爲:%加字符的ASCII碼,即一個百分號%,後面跟對應字符的ASCII(16進制)碼值。例如 +號的編碼值是"%2B"。
下表中列出了一些URL特殊符號及編碼:

特殊字符 在URL中的默認含義 轉義碼
+ URL 中+號表示空格 %2B
空格 %20
/ 分隔目錄和子目錄 %2F
? 分隔實際的 URL 和參數 %3F
% 指定特殊字符 %25
# 表示書籤 %23
& URL 中指定的參數間的分隔符 %26
= URL 中指定參數的值 %3D
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章