メインコンテンツに移動

クエリ文字列のパラメーターを正しくエンコードする

このツールには 2 つのモードがあります。「コンポーネント」(encodeURIComponent)はパラメーター名または値 1 つ用、「完全な URL」(encodeURI)は構造がすでに正しい URL 全体用です。両者の取り違えは、クエリ文字列が壊れる最も一般的な原因です。

計算例

「完全な URL」モードでは値の中の & が残るため、サーバーは 1 つではなく 2 つのパラメーターとして読み取ります。

入力
https://example.com/search?q=salt & pepper&page=2
結果 · encodeURI()
https://example.com/search?q=salt%20&%20pepper&page=2

サーバーが読み取るパラメーター

  • "q" = "salt "
  • " pepper" = ""
  • "page" = "2"

先に値を「コンポーネント」モードでエンコードすれば、1 つのパラメーターのまま保たれます。

入力
salt & pepper
結果 · encodeURIComponent()
salt%20%26%20pepper

https://example.com/search?q=salt%20%26%20pepper&page=2

サーバーが読み取るパラメーター

  • "q" = "salt & pepper"
  • "page" = "2"

「コンポーネント」と「完全な URL」の文字ごとの比較

文字コンポーネント完全な URL
:%3A:
/%2F/
?%3F?
#%23#
&%26&
=%3D=
+%2B+
␠%20%20
é%C3%A9%C3%A9

ツールの処理方法

  • 各パラメーターの名前と値を「コンポーネント」モードで個別にエンコードします。このモードは & = ? # + / をエスケープします。
  • エンコードしたペアを 名前=値 の形で & でつなぎ、URL の ? の後に追加します。
  • 「完全な URL」モードは URL 全体にのみ使用してください。: / ? # & = + をそのまま残すため、これらを含む値は保護できません。

URL エンコードのガイド