JavaScript

decodeURI is a JavaScript function that removes the encoding of special characters from web addresses and other URIs, returning them to their original, readable form.

decodeURI [function]

 decodeURIは JavaScriptにおける関数の一つで、インターネット上で安全に情報を送受信するために特定の方法で変換された URI(Uniform Resource Identifier、統一資源識別子)を、もとの文字列に戻す役割を持ちます。URIとは、インターネット上の資源を一意に識別するための文字列のことです。例えば、ウェブページのアドレスやファイルへのパスなどがこれにあたります。

 インターネット上でデータを送受信する際には、文字列に含まれるスペースや特殊文字をそのまま送ることができないため、これらの文字を「パーセントエンコーディング」という方法で変換します。たとえば、スペースは「%20」に、日本語の「あ」は「%E3%81%82」というように変換されます。この変換を施した文字列を人が読みやすい形に戻すのが decodeURI関数の役割です。

 decodeURI関数は、パーセントエンコーディングされた URIを受け取り、エンコード前の文字列に変換して返します。ただし、URIに含まれる特殊な意味を持つ文字(例: &, =, ?, # など)は、この関数によってデコードされません。これらの文字もデコードしたい場合は、decodeURIComponent関数を使用します。

JavaScript

// パーセントエンコーディングされたURI
var encodedURI = "https://example.com/%E3%83%86%E3%82%B9%E3%83%88?query=%E3%81%82";

// decodeURIを使ってデコードする
var decodedURI = decodeURI(encodedURI);

console.log(decodedURI);
// 出力: https://example.com/テスト?query=あ

 この例では、エンコードされた URIを decodeURI関数に渡しています。関数はこの文字列をデコードし、読みやすい形の文字列に変換しています。ただし、クエリパラメータ(?query=あの部分)内の等号(=)や質問符(?)は、特殊な意味を持つため、decodeURIによってデコードされません。これを含めてデコードしたい場合は、decodeURIComponent関数の使用を検討する必要があります。

 decodeURI関数は、ウェブアプリケーションでユーザー入力を扱う際や、URLから情報を抽出する際など、幅広いシーンで利用されます。正しく理解し、適切に使用することで、インターネット上でのデータの取り扱いがより柔軟で効率的になります。