爲什麼要兩次urlencode

在頁面兩次編碼encodeURI(encodeURI(userName));再到服務器用utf8方式解碼一次URLDecoder.decode(old,"utf-8");這麼麻煩的原因是:應用服務器自身總會進行一次URLdecode操作,而不同版本的應用服務器解碼所用的編碼版本又都不一樣,如果把數據直接發送到應用服務器,結果不同版本的應用服務器解碼得到的結果是不可預料的,必然得到的是亂碼。而這樣在頁面段兩次編碼後產生的[%25E4,%25B8,%25AD]無論結果什麼版本的應用服務器解碼,產生的結果都是[%E4,%B8,%AD]。這樣在servlet那裏進行一次URLDecoder.decode(old,"utf-8");就可以得到正確的結果。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章