JavaScript/escape
escape()
は非推奨の関数で、文字列をURLエンコードするために使用されていました。この関数は、特定の文字(英数字と一部の記号を除く)をISO Latin-1文字セットの16進表現に置き換えます[1]。
構文
escape(string)
string
: エンコードする文字列。
戻り値
エンコードされた文字列を返します。ASCII英数字、@*_+-./
を除くすべての文字は16進エスケープシーケンスに置き換えられます。
例
基本的な使用方法
以下のプログラムは、escape()
を使用して文字列をエンコードする方法を示しています。
console.log(escape("Hello, World!")); // "Hello%2C%20World%21" console.log(escape("こんにちは")); // "%u3053%u3093%u306B%u3061%u306F"
このプログラムでは、escape()
を使用して文字列「Hello, World!」と「こんにちは」をエンコードしています。スペース、カンマ、感嘆符、および日本語文字がエスケープシーケンスに変換されています。
escape()とencodeURI()の比較
以下のプログラムは、escape()
と推奨されるencodeURI()
/encodeURIComponent()
の違いを示しています。
const str = "https://example.com/?q=こんにちは"; console.log(escape(str)); // "https%3A//example.com/%3Fq%3D%u3053%u3093%u306B%u3061%u306F" console.log(encodeURI(str)); // "https://example.com/?q=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF" console.log(encodeURIComponent(str)); // "https%3A%2F%2Fexample.com%2F%3Fq%3D%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF"
このプログラムでは、同じ文字列に対してescape()
、encodeURI()
、encodeURIComponent()
を使用した結果を比較しています。escape()
はUnicodeをサポートしておらず、encodeURI()
やencodeURIComponent()
とは異なるエンコーディング方式を使用しています。
注意点
- 非推奨:
escape()
関数は非推奨であり、新しいコードではencodeURI()
またはencodeURIComponent()
を使用すべきです。 - Unicode対応の問題:
escape()
はUnicodeをサポートしておらず、UTF-8エンコーディングを正しく処理しません。 - 代替手段: URLエンコーディングには
encodeURI()
またはencodeURIComponent()
を使用してください。
脚註
- ↑ この関数はレガシーコードで見られることがありますが、新しいコードでは使用すべきではありません。