URL エンコード(オンライン)
URL 用にテキストをパーセントエンコードします。クエリ文字列の中に入る値なら「コンポーネント」を、構造を壊さずにアドレスをエスケープしたいなら「URL 全体」を選んでください。
テキスト
エンコード結果
このツールについて
URL エンコードは、URL がそのまま運べない文字をパーセント記号とその UTF-8 バイト値に置き換えます。モードは思っている以上に重要です。アドレス全体をコンポーネントモードでエンコードすると、そのアドレス自身のスラッシュやコロンまでエスケープされ、どのサーバーもルーティングできないものができあがります。逆にクエリの値を URL 全体モードでエンコードすると、値を途中で切ってしまう & や = がそのまま残ります。テキストが値なのかアドレスなのかで選んでください。
使い方
- 1テキストまたは URL を左のパネルに貼り付けます。
- 2クエリの値なら「コンポーネント」、完全なアドレスなら「URL 全体」を選びます。
- 3結果をコピーします。戻す作業は URL デコードのページがすぐ隣にあります。
よくある質問
›2 つのモードの違いは何ですか?
「コンポーネント」は URL 内で特別な意味を持つものをすべてエスケープします(& = ? / # :)。テキストが値の中に入るからです。「URL 全体」はそれらをそのまま残してアドレスの構造を保ち、空白・引用符・非 ASCII だけをエスケープします。
›クエリパラメーターにはどちらを使いますか?
常に「コンポーネント」です。& や = を含む値は、そうしないと別のパラメーターの始まりとして読まれてしまいます。検索語が黙って途中で切れる典型的なバグの正体がこれです。
›空白が + ではなく %20 になるのはなぜですか?
パーセントエンコードはどこでも %20 を使います。+ の慣習は HTML フォームの送信(application/x-www-form-urlencoded)だけのものなので、フォームのボディが期待される場面でのみ使ってください。
›非ラテン文字はどう扱われますか?
まず UTF-8 として符号化されるため、1 文字が 2〜4 個のパーセントエスケープになります。キリル文字や中国語のテキストがエンコード後に大きく膨らむのはそのためです。
›これらの文字は本当に危険なのですか?
非予約文字(A-Z a-z 0-9 - _ . ~)はエスケープの必要が一切ありません。それ以外は予約された意味を持つか、そのまま届く保証がないため、エンコードしておくほうが安全です。