encodeURI是對整個uri進行編碼的,而encodeURIComponent是對uri中部分內容進行編碼。

在進行url的字符串拼接時,需要進行兩次encodeURI。
只進行一次encodeURI,服務器在進行request.getParameter()時會自動進行一次解碼,而這個解碼字符集可能使用的是操作系統默認字符集。
如果進行兩次encodeURI,在服務器端,首先通過request.getParameter()自動進行第一次解碼(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,對結果無影響)得到ascii字符,然后再使用UTF-8進行第二次解碼,通常使用java.net.URLDecoder("","UTF-8")方法。
兩次編碼兩次解碼的過程為:
UTF-8編碼->UTF-8(iso-8859-1)編碼->iso-8859-1解碼->UTF-8解碼,編碼和解碼的過程是對稱的,所以不會出現亂碼。
encodeURL函數主要是來對URI來做轉碼,它默認是采用的UTF-8的編碼.
UTF-8編碼的格式:一個漢字來三個字節構成,每一個字節會轉換成16進制的編碼,同時添加上%號
