【公告】網站目前停止所有的課程訂閱服務,原有學員權益不受影響,造成不便還請見諒,我們正在打造更多課程以及圖書,包含 Python 為主的課程主題,未來將會合併且擴充目前的課程內容,提供全新課程訂閱服務,感謝學員的支持。
【公告】《Entity Framework 實務精要》 絕版優惠學習活動,是針對最後一批少量書籍絕版的短期特別活動,只提供 20 個名額(剩 5 名),教學影片要在今年暑假過後才會重新開放訂閱,並沒有提供之前單獨購書的讀者,還請見諒, 如果您需要教學影片,屆時再請參與,也感謝讀者學員的支持,我們正在開發更多的教學內容,歡迎與我們一起努力。
《Entity Framework 實務精要》 絕版優惠學習活動》

JavaScript 的編碼(encodeURIComponent)/解碼(decodeURIComponent)函式

當你需要處理某些特定字元以避免錯誤,可以將相關的字串進行編碼,JavaScript 內建了 encodeURIComponent() 與 decodeURIComponent() 以支援相關的操作,考慮以下的程式片段:

<script>
    var x = 'abc, xyz;123 ';
    var encode_x = encodeURIComponent(x);
    var decode_x = decodeURIComponent(encode_x);
    console.log(encode_x);
    console.log(decode_x);
</script>

x 變數所儲存的字串包含了逗號、空白與分號,接下來調用 encodeURIComponent() 對其進行編碼,得到編碼後的結果,並儲存於 encode_x ,接下來再將其結果值傳入 decodeURIComponent() ,得到解碼後的結果 decode_x ,最後分別將這兩個值輸出。內容如下:

abc%2C%20xyz%3B123%20
abc, xyz;123

如你所見, encodeURIComponent() 將其中的逗號、空白與分號進行編碼,而decodeURIComponent() 則進行解碼還原。

字串的編碼與解碼常見於網址字串的轉換,或是將資料儲存至 cookie 的場合,儲存空白或逗號這一類的字元在相關狀況下都會出問題,因此必須先經由 encodeURIComponent() 編碼,它主要針對  , / ? : @ & = + $ # 這幾個字元進行編碼,再透過 decodeURIComponent() 解碼。

沒有留言: