前端用base64加密後的資料,傳遞到後台時發現乙個問題:
比如 韓飛 這個名字,base64加密後的字串為
6z+p6aoe
但是後端接受到引數為:
6z p6aoe
+號變成了空格,導致後台解密的時候出現異常。
解決辦法如下:
1、修改客戶端,將客戶端帶「+」的引數中的「+」全部替換為「2b%」,這樣引數傳到伺服器端時就能得到「+」了。
2、修改伺服器端,將空格替換為「+」,這種方式只適用於引數中有「+」沒有空格的情況。
本人前端對引數使用base64加密,後端對該引數使用base64解密,使用了第二種方法,替換空格為+號之後再解密。
後端解碼時遇到乙個問題,不能正確解碼:
import sun.misc.base64decoder;
merchantrelperson = merchantrelperson.replace(" ", "+");
base64decoder decoder = new base64decoder();
byte b = null;
b = decoder.decodebuffer(merchantrelperson);
merchantrelperson = new string(b, "utf-8");
最後發現,是new string時沒有指定編碼方式。指定之後就沒問題了。
專案用的是utf-8編碼,但是直接
merchantrelperson = new string(b);
還是亂碼,指定utf-8之後就好了。 URl 傳參時 號變成空格
1,url傳參中加號變空格的解決方案 url傳參加號變空格的問題,在頁面中把 號替換為 2b 可以得到解決 str str.replace 2b 說明 和2之間是沒有空格的,因為在網頁上顯示時,會被轉義為 號,所以本人加了個空格,實際應用中是沒有的。希望能解決您的問題。2,遇到的問題 當上傳檔案的檔...
傳參時Url中有中文報錯
url中如果傳了中文,瀏覽器會報錯 the header content contains invalid characters。原因 瀏覽器自動把這個url進行decodeuricomponent,英文就不用在意,但是中文直接decodeuricomponent就會出現亂碼。官方解釋 有效的uri...
獲取url傳參
function urlparameterforkey name else 讀取 html 引數 window.location.search 獲取url之後的字串 如 www.baidu.com?id 7 得到 id 7 regexp regexp 物件表示正規表示式,它是對字串執行模式匹配的強大...