替連結、查詢參數或表單本文做百分比編碼,或把它還原。預設 UTF-8,和瀏覽器的 encodeURIComponent 一致。對方如果是 Big5、GBK 或其他編碼,在字元編碼裡改。
一段網址裡,斜線有時必須留下,有時必須變成 %2F。表單裡的空格寫成 +,查詢串裡通常寫成 %20。整段用錯函數,是連結打開到錯誤頁面的常見原因。
encodeURIComponent。搜索詞、編號、回跳地址用這個。encodeURI。它保留 : / ? #,只處理空格和非 ASCII。你已經有完整地址時用它。application/x-www-form-urlencoded。空格變成 +。這是 POST 正文,不是連結。+ 表示空格。普通查詢串裡空格已經是 %20。% 後面不是兩位十六進制,多半是被截斷,或已經解碼過一次又被當成編碼串。空格在連結裡是 %20,在表單裡是 +。參數值裡真正的加號必須寫成 %2B,否則服務端會把它讀成空格。& 和 = 如果出現在值裡面,也要編碼,不然會被當成下一個參數。
預設按 UTF-8,和 encodeURIComponent 一致:中文每個字節寫成 % 加兩位十六進位。“北京”不是一個轉義,而是一串。舊接口如果要求 Big5 或 GBK,把字元編碼改成對應項,同一段中文會得到另一串百分比。選 Hex 時,框裡按十六進位字節做百分比編碼。不要用「單一參數」去編碼整段 https://,否則冒號和斜線都會被換掉。字節層面可以對照 字串轉字節。Base64 是另一套,見 Base64。
你選的是表單正文。做連結時改成“單個參數”。
被編碼了兩次。再解一次,到能讀為止。
不能。按 & 拆開,只編碼每個值,分隔符留下。“每一行單獨處理”就是為了這個。