JavaScript 中 escape() 和 unescape() 函式的區別是什麼?


JavaScript 提供了兩個用於處理編碼字串的函式:escape()unescape()escape() 函式用於編碼字串,使其安全地用於 URL。unescape() 函式用於解碼已編碼的字串。

區別

這兩個函式的主要區別在於,escape() 對非 ASCII 字元進行編碼,而 unescape() 只解碼這些字元。這意味著,如果對僅包含 ASCII 字元的字串使用 escape(),則結果將與輸入字串相同。但是,如果對包含非 ASCII 字元的字串使用 unescape(),則結果可能與輸入字串不同。

用例

escape() 函式通常用於編碼 URL 引數或路徑段。例如,如果要編碼字串“Hello world!”以用於 URL,則可以使用 escape() 函式,如下所示:

var encodedString = escape("Hello world!");

unescape() 函式通常用於解碼 URL 引數或路徑段。例如,如果要解碼字串“Hello%20world!”(這是“Hello world!”的編碼版本),則可以使用 unescape() 函式,如下所示:

var decodedString = unescape("Hello%20world!");

示例

以下是完整的可執行程式碼示例:

<html>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <script>
      var encodedString = escape("Hello world!");
      var decodedString = unescape(encodedString);
      document.getElementById("result1").innerHTML = "Encoded String: " + encodedString
      document.getElementById("result2").innerHTML = "Decoded String: " + decodedString
   </script>
</body>
</html>

優點

以下是使用 escape()unescape() 函式的優點:

  • escape() 函式可用於對字串進行編碼以用於 URL。

  • unescape() 函式可用於解碼已編碼的字串。

  • 這些函式可用於確保字串安全地用於 URL。

  • 這些函式可用於解碼已編碼以用於 URL 的字串。

缺點

以下是使用 escape()unescape() 函式的一些缺點:

  • 並非所有瀏覽器都支援 escape() 函式(包括 Internet Explorer 7 及更早版本)。

  • unescape() 函式可用於解碼惡意字串,這可能導致安全漏洞。

  • escape()unescape() 函式僅適用於 ASCII 字元。如果需要編碼/解碼包含非 ASCII 字元的字串,則應使用其他編碼/解碼方案,例如 UTF-8。

結論

總之,escape()unescape() 函式分別用於編碼和解碼字串。這兩個函式的主要區別在於,escape() 對非 ASCII 字元進行編碼,而 unescape() 只解碼這些字元。這些函式可用於確保字串安全地用於 URL。但是,這些函式不應用於解碼使用其他編碼方案(例如 UTF-8)編碼的字串。

注意escape()unescape() 函式已棄用。請改用 encodeURI 或 encodeURIComponent(),以及 decodeURI() 或 decodeURIComponent()。

更新於:2022年7月1日

2K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.