JavaScript/escape

カテゴリ:Book:JavaScript#escape%20

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()を使用してください。

脚註

  1. この関数はレガシーコードで見られることがありますが、新しいコードでは使用すべきではありません。

外部リンク

カテゴリ:Book:JavaScript#escape%20 カテゴリ:JavaScript カテゴリ:非推奨
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension カテゴリ:非推奨