本文へスキップ
SPCXTools

URLエンコード・デコード

テキストをURL用にパーセントエンコーディングしたり、エンコードされたURLやクエリ文字列を読みやすいテキストにデコード(復元)したりできます。

ローカルで動作 — ファイルは端末から出ません

ツールを読み込み中…

URLエンコード・デコードの使い方

  1. 1テキストをURLで安全に使えるようにするにはエンコードを、%20のような文字列を元のテキストに戻すにはデコードを選択します。
  2. 2個別のパラメータ値やパスセグメントにはコンポーネントを、/、?、&などの文字をそのまま残すにはフルURLを選択します。
  3. 3HTMLフォームデータ(application/x-www-form-urlencoded)を扱う場合は、スペースを+ににチェックを入れます。
  4. 4テキストを貼り付けると、結果がすぐに表示されます。デコードモードでは、クエリパラメータが表形式で一覧表示されます。
  5. 5ワンクリックで結果をコピーできます。

URLを安全にエンコード・デコード

URLには一部の文字しか含めることができません。スペース、アクセント付き文字、絵文字、そして &、=、# などの記号は、URLに含める前にパーセントエンコーディング(% とそれに続く2桁の16進数で表現)する必要があります。このツールは、テキストをその形式に変換したり、元のテキストに戻したりします。処理はブラウザ内で完結するため、貼り付けたURLやそれに含まれるトークン、個人情報などがサーバーに送信されることは一切ありません。

主な機能

  • 2つのエンコード範囲: 個別の値(コンポーネント)をエンコードするか、URL全体の構造を維持したままエンコードするかを選択できます。
  • フォーム形式のエンコーディング: オプションでスペースを + としてエンコードし、+ をスペースにデコードできます。
  • UTF-8対応: あらゆる言語や絵文字に対応しています。
  • クエリ文字列ビューア: URLをデコードする際、各パラメータがキーと値のペアで表示されるため、長いトラッキングリンクやAPIコールが読みやすくなります。
  • 即時出力: 結果はすぐに表示され、ワンクリックでコピーできます。また、モードを切り替えることで結果を入力欄に移動させ、簡単に再変換できます。

URLエンコードが必要な場面

APIリクエストの作成。 検索語やフィルターの値にスペースや記号が含まれている場合、クエリストリングに追加する前にエンコードする必要があります。そうしないと、値の中の & や = が新しいパラメータの始まりとして解釈されてしまいます。

トラッキングリンクやリダイレクトリンクの解読。 マーケティング用のリンクやログインリダイレクトには、エンコードされたURLが別のURLの中に含まれていることがよくあります。デコードすることで、リンクの本当の遷移先や、どのようなパラメータが含まれているかを確認できます。

Webフォームのデバッグ。 フォームを送信すると、各フィールドは & で連結された key=value のペアとしてエンコードされ、スペースは + になります。生のボディをデコードすることで、実際に何が送信されたかを正確に確認できます。

日本語などを含むリンクの共有。 ブラウザは https://example.com/東京 のようにきれいに表示しますが、実際のリクエストでは %E6%9D%B1%E4%BA%AC が使用されます。エンコードすることで、サーバーが受け取る形式を確認できます。

予約文字と非予約文字

RFC 3986では、エンコードが不要な非予約文字が定義されています。これには、英数字、-、.、_、~ が含まれます。一方、予約文字(: / ? # [ ] @ ! $ & ' ( ) * + , ; =)はURLにおいて特別な意味を持つため、値の一部として使用する場合はエンコードする必要があります。それ以外のすべての文字(スペースや非ASCII文字を含む)は常にエンコードされます。

URLエンコードはBase64エンコードとは異なります。バイナリデータを扱いたい場合や、よりコンパクトな表現が必要な場合は、Base64エンコーダーをご利用ください。Base64URLモードを使えば、その出力はURLに直接含めても安全です。

よくある質問

コンポーネントモードとフルURLモードの違いは何ですか?
コンポーネントは、/ ? & = # を含む、URLで特別な意味を持つすべての文字をエンコードします。個別のクエリ値に使用します。フルURLは、これらの構造的な文字はそのまま残し、スペースや非ASCII文字など無効な文字のみをエンコードするため、URL全体が機能し続けます。
スペースが %20 になったり + になったりするのはなぜですか?
パス内や最近の多くのAPIでは、スペースは %20 としてエンコードされます。一方、HTMLフォームがデフォルトのコンテントタイプで送信される場合、クエリ文字列内のスペースは + としてエンコードされます。どちらも一般的です。フォームのエンコーディングに合わせるには、スペースを+ににチェックを入れてください。
デコード時にエラーが出るのはなぜですか?
デコードは、% の後に16進数2桁が続かない場合や、バイト列が有効なUTF-8を形成しない場合に失敗します。これは、テキストが部分的にしかエンコードされていなかったり、二重にエンコードされていたりする場合によく起こります。余分な % がないか確認してください。
英語以外の文字はどのようにエンコードされますか?
まずUTF-8のバイト列に変換され、各バイトが %XX の形式になります。例えば、「é」は %C3%A9 に、「東」は %E6%9D%B1 になります。
入力したデータはどこかに送信されますか?
いいえ。エンコードとデコードはブラウザの組み込み機能を使用しており、すべてお使いのデバイス上で完結します。