JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでエンコードした文字列をデコードする方法

JavaScriptで文字列をエンコードするには encodeURIComponent() または encodeURI() を使用し、デコードするには decodeURIComponent() または decodeURI() を使用します。

かつては escape() 関数がエンコードによく使われていましたが、現在では非推奨(deprecated)となっているため、代わりに encodeURI() を使うのが標準的な方法です。

構文

エンコード

encodeURIComponent(string);

デコード

decodeURIComponent(string);

encodeURI() と encodeURIComponent() の違い

encodeURI() はURL全体を対象とする関数で、URIの構成上特別な意味を持つ記号(/ ? : @ & = + $ # など)はそのまま残されます。一方、encodeURIComponent() はこれらの記号も含めてほぼすべての特殊文字をエンコードするため、クエリパラメータなどの値を安全に渡したい場合に適しています。

デコードの際も同様に、エンコード時に使用した関数に対応した decodeURI() または decodeURIComponent() を使い分けることが重要です。

サンプルコード

次の例では、まず文字列を encodeURI() でエンコードし、続けてその結果を decodeURI() でデコードしています。エンコード後とデコード後の両方の結果が画面に出力されます。

<html>
<body>
<p id="encoding"></p>
<script>
    var str = "Tutorix is the best e-learning platform";
    var enc = encodeURI(str);
    var dec = decodeURI(enc);
    var res = "After encoding: " + enc +
    "</br>" + "After Decoding: " + dec;
    document.getElementById("encoding").innerHTML = res;
</script>
</body>
</html>

実行結果

After encoding: Tutorix%20is%20the%20best%20e-learning%20platform
After Decoding: Tutorix is the best e-learning platform

まとめ

文字列のエンコードには encodeURI() または encodeURIComponent() を、デコードにはそれぞれ対応する decodeURI() または decodeURIComponent() を使用します。非推奨となった escape() は新しいコードでは使用しないようにしましょう。用途に応じて適切な関数を選ぶことで、URLやパラメータを安全かつ正確に扱うことができます。

  1. JavaScriptで文字列を検索する方法【search()メソッドの使い方を解説】

    JavaScriptで文字列を検索する方法 JavaScriptで文字列の中から特定の文字列を探すには、search()メソッドを使用します。このメソッドは、引数に渡した文字列(または正規表現)が対象の文字列内で最初に一致した位置(インデックス)を返し、見つからなかった場合は -1 を返します。 以下は、JavaScriptで文字列を検索するサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" />

  2. 文字列をJavaScriptオブジェクトに変換する方法【JSON.parse()の使い方】

    JavaScriptでJSON形式の文字列をオブジェクトに変換するには、JSON.parse()メソッドを使用します。このメソッドは、引数に渡された文字列を解析(パース)し、対応するJavaScriptオブジェクトを返します。 サンプルコード <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Docum