URL エンコーダー & パーサー
端末内で動作し、何も送信されません。すべてお使いの端末上で処理されます。入力または貼り付けた内容がどこかに送信されることは一切ありません。
ここに結果が表示されます
URL やクエリ文字列をエンコード・デコードしたり、完全な URL を各パートに分解してクエリ文字列をライブテーブルで編集したりできます - すべてブラウザ内で完結します。
URL に安全に含められる文字は限られた ASCII 文字のみです - スペースや & 記号、非ラテン文字など、それ以外の文字はすべて %XX という形式でパーセントエンコードしてからでないと URL 内を通ることができません。このツールはブラウザと同じルールでテキストをエンコード・デコードするほか、完全な URL をプロトコル、ホスト、ポート、パス、クエリ文字列、ハッシュに分解し、テーブル上でクエリパラメータを編集しながら URL がライブで再構築される様子を確認できます。すべての処理はブラウザ内でローカルに行われ、どこにもアップロードされません。
よくある質問
パーセントエンコードとは何ですか?
パーセントエンコード(URL エンコードとも呼ばれます)は、文字を % とその 2 桁の 16 進数値に置き換えるもので、UTF-8 表現の各バイトごとに繰り返されます。これにより URL はスペース(%20)や & 記号(%26)、絵文字などを、URL 自体の構文と混同されることなく運ぶことができます。
encodeURIComponent と encodeURI の違いは何ですか?
encodeURIComponent は一部の非予約文字を除くすべての文字をエスケープするため、クエリパラメータやパスセグメントといった単一の値に適しています。これは、そうでなければ URL の構造として読み取られてしまう & や = などの文字もエスケープするためです。一方 encodeURI は URL 全体を対象としており、:、/、?、&、# といった構造文字はそのまま残して URL が機能し続けるようにし、URL に本当に含められない文字(スペースなど)だけをエスケープします。URL 全体を encodeURIComponent に通すと、スラッシュやコロンまでエスケープされて URL が壊れてしまいます。
escape() や unescape() は今でも使うべきですか?
いいえ。どちらも encodeURIComponent を導入した最初の JavaScript 標準の版ですでに非推奨とされました。escape() は HTTP や現代の URL が想定する形で非 ASCII 文字をエンコードせず、Latin-1 の範囲外の文字には decodeURIComponent では読み戻せない非標準の %uXXXX 形式を使うためです。このツールでは、レガシーシステムが生成した出力を確認できるようにするためだけにこのオプションを残しています。
クエリ文字列の + がスペースになるのはなぜですか?
クエリ文字列は歴史的に HTML フォームの送信に由来しており、application/x-www-form-urlencoded という形式が使われています。この形式では実際のスペースを %20 ではなく + としてエンコードするため、このツールのパーサー(および JavaScript の URLSearchParams)はデコード時にどちらもスペースとして扱います。値として本当にプラス記号そのものが必要な場合は、それ自体を %2B としてパーセントエンコードする必要があります。
?tag=a&tag=b のように同じパラメータが繰り返された場合はどうなりますか?
何も失われません。このツールは各出現をその順序のままクエリパラメータテーブルの個別の行として保持します。これはほとんどのサーバーフレームワークが繰り返されたキーをリストにまとめる方法と同じです。ある行を編集または削除しても、他の行には影響しません。
パーサーが URL に対して https:// を仮定したのはなぜですか?
example.com/path のような文字列にはプロトコルがないため、ブラウザもこのツールも、それが Web アドレスなのか、別のプロトコル用なのか、単なるテキストなのかを判断できません。パーサーはそれを拒否する代わりに https:// を仮定し、それでも確認・編集できるようにしています。これが起きるたびにヒントが表示され、別のスキームを意図していた場合はプロトコル欄で修正できます。