AIStacker
Webベストプラクティスガイド5 分で読めます

URL エンコードとは?いつパーセントエンコードすべきか

URL で文字をエンコードする理由、encodeURI と encodeURIComponent の違い、二重エンコードの避け方を整理します。

このガイドで扱う内容
3
このガイドで使用するツール
2
関連トピック
5
ガイド概要

URL エンコードは、URL にそのまま入れると解釈が壊れる文字を %XX 形式に置き換える仕組みです。redirect URL、query parameter、API リクエストなどで正しく扱うには、何をどの粒度でエンコードすべきかを理解しておく必要があります。

01

なぜ URL エンコードが必要なのか

#

URL では使える文字が限られており、空白や ?#、日本語などをそのまま含めると、ブラウザやサーバー側で意図しない解釈が起こります。

パーセントエンコードは unsafe なバイトを %XX 形式に変換する仕組みです。たとえば空白は %20?%3F、日本語の は UTF-8 のバイト列に応じて %E6%97%A5 のように表現されます。

このセクションで使うツール

02

encodeURI と encodeURIComponent の違い

#

encodeURI は URL 全体を対象にし、/?& など構造を表す文字は残したまま unsafe な部分だけをエスケープします。すでに完成している URL を安全にする時はこちらです。

一方 encodeURIComponent はパラメータ値のような部分文字列向けです。query parameter や redirect target など、URL の一部だけを埋め込む時は encodeURIComponent を使うのが基本です。

このセクションで使うツール

03

二重エンコードはなぜ起きるのか

#

すでにエンコード済みの文字列をもう一度エンコードすると、%20%2520 になるように % 自体まで再変換されます。これが二重エンコードです。

よくある原因は、すでに % を含んだ完全な URL に対して encodeURIComponent をかけてしまうことです。URL 全体ではなく、必要なパラメータ値だけを個別にエンコードする癖を付けると防ぎやすくなります。

このセクションで使うツール