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 仕様