DevToolPal
日本語

URL エンコード・デコード

テキストをパーセントエンコードして URL やクエリ文字列で安全に使えるようにし、%XX 形式を読めるテキストにデコードします。

ローカルで処理、アップロードなし

オプション

モード
エンコード範囲

入力

0 文字 · 0 B

出力

0 文字 · 0 B

何ができるか

URL エンコード(パーセントエンコーディングとも呼ばれます)は、URL で使えない文字や特別な意味を持つ文字を、% と 2 桁の 16 進数に置き換えます。スペースは %20、アンパサンドは %26 になり、中文 のような非 ASCII のテキストはまず UTF-8 のバイト列に変換され、各バイトが %XX として書き出されます。

このツールは、テキストをクエリ文字列、パスセグメント、API リクエストに安全に入れられるようエンコードし、ログやブラウザのアドレスバー、HTTP トレースからコピーしたパーセントエンコード済みの文字列を読めるテキストにデコードします。

使い方

  1. 入力 欄にテキストや URL を貼り付けるか、サンプル をクリックします。
  2. エンコード か デコード を選びます。
  3. エンコード時は、検索語のような 1 つの値をエンコードするなら コンポーネント を、:、/、?、&、= をそのまま残すなら URL 全体 を選びます。
  4. HTML フォームデータには スペースを + に を、値のリストをまとめて処理するには 行ごとに処理 をオンにします。
  5. 結果をコピーまたはダウンロードします。デコードに失敗した場合は、壊れたエスケープシーケンスの位置がエラーに表示されます。

例

検索語 hello world & more をコンポーネントとしてエンコードすると、次のようになります。

hello%20world%20%26%20more

q=%E4%BD%A0%E5%A5%BD をデコードすると q=你好 になります。

使い分け

  • クエリ文字列を手で組み立てる場合:各 値 をコンポーネントとしてエンコードし、& と = でつなぎます。
  • スペースや中国語の文字を含む完全なリンクを整える場合:リンクの構造が保たれるよう URL 全体 を使います。
  • サーバーログを読む場合:多くのサーバーはフォームデータをその形式で記録するので、スペースを + に をオンにしてデコードします。

よくある質問

› 「コンポーネント」と「URL 全体」の違いは何ですか?

コンポーネントは / ? & = # を含むすべての予約文字をエンコードするので、結果を 1 つのクエリパラメーターやパスセグメントの中に安全に入れられます。JavaScript の encodeURIComponent と同じです。URL 全体はこれらの文字を残すので、アドレスはリンクとしてそのまま機能します。encodeURI と同じです。

› スペースは %20 と + のどちらにすべきですか?

パスやほとんどの API には %20 を使います。+ を使うのは、フォーム送信時にブラウザが送る HTML フォームデータ(application/x-www-form-urlencoded)の場合だけです。その場合は「スペースを + に」をオンにしてください。

› デコード時に「not valid UTF-8」と表示されるのはなぜですか?

%XX のバイト列が完全な UTF-8 文字になっていないからです。たいていは、マルチバイト文字の途中でテキストが切れているか、GBK や Latin-1 のような古い文字コードでエンコードされています。

› データはサーバーに送信されますか?

いいえ。エンコードもデコードも完全にブラウザ内で行われます。