ガイド一覧

URL 予約文字の完全ガイド

URL エンコーディングガイド

URL 仕様(RFC 3986)は文字を大きく 予約文字(reserved)非予約文字(unreserved) に分けます。この区別を知ると、いつエンコードすべきで、いつしなくてよいのかが明確になります。

非予約文字(そのまま使用可能)

アルファベットの大文字・小文字、数字、そして - _ . ~ の 4 つの記号は、どの位置でもエンコードなしでそのまま使えます。これらの文字はエンコードしても意味が変わらないので、通常はエンコードしません。

予約文字(構造的な意味を持つ)

予約文字は URL の構造を区切る役割を持ちます。データの一部として使うには、必ずエンコードしなければなりません。

encodeURI と encodeURIComponent の境界

encodeURI は上記の予約文字を 保持 します。すでに完成した URL 全体をエンコードするとき、構造を壊さないためです。一方 encodeURIComponent は予約文字まで すべて変換 します。パラメータ値ひとつのように URL の断片を入れるときに安全です。

値をひとつ入れるときは encodeURIComponent、アドレス全体を扱うときは encodeURI — この原則だけ覚えておけば、ほとんどのミスを避けられます。