JavaScript/unescape

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

unescape() は非推奨の関数で、escape() 関数によってエンコードされた文字列をデコードするために使用されていました。この関数は、16進エスケープシーケンスを元の文字に変換します[1]

構文

unescape(string)
  • string: デコードする文字列。

戻り値

デコードされた文字列を返します。%XX 形式(XX は16進数)および %uXXXX 形式(XXXX は16進数)のエスケープシーケンスが元の文字に置き換えられます。

基本的な使用方法

以下のプログラムは、unescape() を使用して escape() でエンコードされた文字列をデコードする方法を示しています。

console.log(unescape("Hello%2C%20World%21")); // "Hello, World!"
console.log(unescape("%u3053%u3093%u306B%u3061%u306F")); // "こんにちは"

このプログラムでは、unescape() を使用してエスケープされた文字列をデコードしています。16進エスケープシーケンスが元の文字に戻されています。

unescape()とdecodeURI()の比較

以下のプログラムは、unescape() と推奨される decodeURI()/decodeURIComponent() の違いを示しています。

const escaped = "https%3A//example.com/%3Fq%3D%u3053%u3093%u306B%u3061%u306F";
console.log(unescape(escaped)); 
// "https://example.com/?q=こんにちは"

const encoded = "https://example.com/?q=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF";
console.log(decodeURI(encoded)); 
// "https://example.com/?q=こんにちは"

const encodedComponent = "https%3A%2F%2Fexample.com%2F%3Fq%3D%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF";
console.log(decodeURIComponent(encodedComponent));
// "https://example.com/?q=こんにちは"

このプログラムでは、unescape()decodeURI()decodeURIComponent() を使用した結果を比較しています。unescape() は古いエンコーディング方式をデコードするために使用され、decodeURI()decodeURIComponent() は現代的なUTF-8エンコーディングをデコードします。

注意点

  • 非推奨: unescape() 関数は非推奨であり、新しいコードでは decodeURI() または decodeURIComponent() を使用すべきです。
  • Unicode対応の問題: unescape()%uXXXX 形式の古いエンコーディングを処理しますが、現代的なUTF-8エンコーディングには適していません。
  • 代替手段: URLデコーディングには decodeURI() または decodeURIComponent() を使用してください。

脚註

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

外部リンク

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