JavaScript

escape()関数

 編集:2022.08.08 by T.A.

特定の文字を 16 進数のエスケープ シーケンスで置き換えた新しい文字列を計算します。

警告: escape() は厳密には非推奨ではありませんが(「ウェブ標準から削除された」という意味で)、ECMA-262 標準の で定義されており、その導入部には次のように書かれています:
… この付属書で規定されているすべての言語機能と動作は、1つ以上の望ましくない特性を持ち、レガシーな使用例がない場合は、この仕様から削除されます。… … プログラマは、新しい ECMAScript コードを書くときに、これらの機能や動作の存在を使用したり、仮定したりしてはいけません。…(省く)

メモ: この関数は、主に URL クエリ(URL の「?」に続く部分)に使われていました。― 「\xHH」の形式を使用して、ふつうの文字列リテラルをエスケープするためのものではありません。(HHは2桁の16進数であり、より高い面の Unicode 文字には「\xHH\xHHxHH」という形式が使われます。)

文字列リテラル内のエスケープされた文字は、「\x」を「%」に置き換えてから、decodeURIComponent() 関数を使用することで展開することができます。

escape(str)
str エンコードする文字列。
戻り値

特定の文字がエスケープされた新しい文字列。

解説

escape 関数はグローバル オブジェクトのプロパティです。

特殊文字は「@*_+-./」以外の文字が符号化されます。

文字の 16 進数形式として、文字コードの値が 0xFF 以下になる文字は 2 桁のエスケープ シーケンス「%xx」が、それ以上の場合は 4 桁のエスケープ シーケンス「%uxxxx%uxxxx」が使われます。

D=escape('abc123'); //="abc123"
D=escape('äöü');    //="%E4%F6%FC"
D=escape('ćあ');    //="%u0107%u3042"

// 特殊文字
D=escape('@*_+-./'); //="@*_+-./"

テスト