Loading...

decodeURI と decodeURIComponent の違い

2025/01/03 10:22
2025/01/03 21:16
正直今まで decodeURI と decodeURIComponent のどちらを選んでも困る経験がなかったので人間として最悪ですがずっと適当に使っていました。正月でヒマなので調べました。

結論

先に結論だけまとめると関数名のとおり以下のような使い分けとなる
  • URL全体をエンコード/デコードするとき: encodeURI/decodeURI
  • パス・クエリパラメータをエンコード/デコードするとき: encodeURIComponent/decodeURIComponent

挙動の違い

encodeURIComponent で URI 全体をエンコードすると URI の形式を破壊してしまう。ただそれだけ。
> encodeURIComponent("http://example.com")
'http%3A%2F%2Fexample.com'

> encodeURI("http://example.com")
'http://example.com'