用URL傳參帶特殊字符,特殊字符丟失,比如傳參的時候,用&符號連接,如果其中的一個參數中含有 # $ ^ & * + - 這些符號的時候,在另一個頁面getParameter就會取不到穿過來的參數。
比如在a.jsp中,我要跳轉到b.jsp,在a.jsp中這樣寫:
b.jsp?Parameter1=wks&Parameter2=happycosn。
如果Parameter1中含有"#$ ^ & * + ="這些特殊字符,在b.jsp中就得不到。並且,我在a.jsp中已經通過encode編碼了,
在b.jsp中也用decode 進行了解碼。這時候,只要所傳入的參數沒有特殊字符都可以在b.jsp頁面取到,但是有特殊字符就取不到了。 像這樣:b.jsp?Parameter1=wks#bamboo&Parameter2=happycosn+#zl
這時候,所取到的參數就不會有bamboo和zl。
解決問題如下:
有些符號在URL中是不能直接傳遞的,如果要在URL中傳遞這些特殊符號,那么就要使用他們的編碼了。
編碼的格式為:%加字符的ASCII碼,即一個百分號%,后面跟對應字符的ASCII(16進制)碼值。例如 空格的編碼值是"%20"。
如果不使用轉義字符,這些編碼就會當URL中定義的特殊字符處理。
下表中列出了一些URL特殊符號及編碼 十六進制值 1.+ URL 中+號表示空格 %2B 2.空格 URL中的空格可以用+號或者編碼 %20 3./ 分隔目錄和子目錄 %2F 4.? 分隔實際的 URL 和參數 %3F 5.% 指定特殊字符 %25 6.# 表示書簽 %23 7.& URL 中指定的參數間的分隔符 %26 8.= URL 中指定參數的值 %3D
參考---https://blog.csdn.net/evilcry2012/article/details/79056638