JavaScript/decodeURI
表示
decodeURI() は、エンコードされたURIを元のフォーマットにデコードするグローバル関数です。Uniform Resource Identifier (URI) において、エンコードされた特殊文字を元の文字に戻します。
構文
[編集]decodeURI(encodedURI)
パラメータ
[編集]encodedURI- デコードするエンコードされたURI文字列
戻り値
[編集]- デコードされた元のURI文字列
例外
[編集]URIError- 不正にエンコードされた文字が含まれている場合にスローされます
基本的な使用例
[編集]// エンコードされたURI const encodedURI = "https://example.com/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF"; // デコード const decodedURI = decodeURI(encodedURI); console.log(decodedURI); // "https://example.com/こんにちは"
エンコード vs デコード
[編集]| メソッド | 目的 | 対象文字 |
|---|---|---|
encodeURI() |
URIをエンコード | 特殊文字(予約文字を除く) |
decodeURI() |
エンコードされたURIをデコード | エンコードされた文字を元に戻す |
特殊文字の扱い
[編集]decodeURI() は以下の文字をデコードしません:
;,/?:@&=+$#
これらの文字は decodeURIComponent() を使用することでデコード可能です。
注意点
[編集]- エンコードされていない文字列に対して使用しても安全です
- 不正なエンコード文字が含まれる場合は
URIErrorを発生 - 可読性のために使用、セキュリティ目的では不十分
高度な使用例
[編集]// クエリパラメータを含むURI const complexURI = "https://example.com/search?q=%E6%A4%9C%E7%B4%A2%E8%AA%9E"; try { const decodedURI = decodeURI(complexURI); console.log(decodedURI); // "https://example.com/search?q=検索語" } catch (error) { if (error instanceof URIError) { console.error("デコード中にエラーが発生しました"); } }
関連メソッド
[編集]ブラウザ互換性
[編集]すべてのモダンブラウザおよびECMAScript 3以降でサポートされています。
仕様
[編集]- ECMAScript 3以降
- WHATWG URL 仕様