1
JavaScript 的 encodeURIComponent() 會將字串轉換成 UTF-8 編碼 - Tsung's Blog (blog.longwin.com.tw)
caterpillar 積分 1 編輯於

「....

在JavaScript中,可以使用encodeURIComponent()為你作這些字元的編碼,編碼後的結果是遵守RFC 3986的規範,但正如 URL 編碼 中介紹過的,在RFC 3986之前,HTTP亦規範了GET與POST在發送請求參數時的編碼,大致上也是編碼為%hexhex,不過空白字元是編碼為 + 而不是RFC 3986的%20。如果直接透過瀏覽器按下發送按鈕來送出表單,則瀏覽器會自動處理編碼(依網頁上指定的編碼來處理),並將空白字元編碼為+,但透過非同步物件發送請求參數時,必須自行處理。

發送請求參數時,若使用encodeURIComponent()編碼後,要再將%20取代為+,以符合HTTP的規範。要注意的是,在字串處理方面,JavaScript支援Unicode,內部實作上採用16位元編碼每個字串元素,大致上可視為UCS-2/UTF-16(這當中還有些歷史因素造成的細節,詳見 Effective JavaScript 一書條款七),不過,傳入encodeURIComponent()的字串最後會以UTF-8進行編碼,若將encodeURIComponent()的結果透過非同步物件發送出去,伺服端必須以UTF-8來處理接收到的字串 ... 」

其他直接看 Ajax 請求與回應1 吧…XD