コンテンツにスキップ

JavaScript/unescape

出典: フリー教科書『ウィキブックス(Wikibooks)』

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. ^ この関数はレガシーコードで見られることがありますが、新しいコードでは使用すべきではありません。

外部リンク

[編集]