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()を使用してください。
脚註
[編集]- ^ この関数はレガシーコードで見られることがありますが、新しいコードでは使用すべきではありません。