URLエンコード・デコードツール(パーセントエンコーディング対応)

URLエンコード・デコードツール

URL入力

変換結果

1

URLエンコード・デコードツールについて

概要

URLエンコード・デコードツールは、URLで使用できない文字を%XX形式に変換(エンコード)、またはその逆変換(デコード)を行うオンラインツールです。encodeURIとencodeURIComponentの2種類のJavaScriptメソッドに対応しています。日本語を含むURLの生成や、APIリクエストのクエリパラメータ作成、既存URLの内容確認など幅広い場面で利用できます。

使い方

  1. 1「変換する文字列」に変換したい文字列を入力します。
  2. 2「モード」を「エンコード」または「デコード」から選択します。
  3. 3「URLの記号(/ や ? など)もすべて変換する」をオンにするとencodeURIComponent相当(記号もすべてエンコード)、オフにするとencodeURI相当(URLの構造文字は保持)の動作になります。
  4. 4「変換」ボタンをクリックします。

仕様・用語解説

  • encodeURI: URLとして有効な文字(スキーム http://、パス区切り /、クエリ文字 ?・=・&など)はエンコードしません。URL全体をそのまま渡す場合に使用します。
  • encodeURIComponent: A-Z a-z 0-9 - _ . ! ~ * ' ( )以外の文字をすべてエンコードします。クエリパラメータの値など、URLの一部を渡す場合に使用します。
  • %エンコーディング(パーセントエンコーディング): 各文字をUTF-8でエンコードし、各バイトを%XX形式(XXは16進数)で表現します(例: 「あ」→ %E3%81%82)。
  • デコード: decodeURI・decodeURIComponentに対応し、エンコード済みの文字列を元のテキストに戻します。
  • encodeURIとencodeURIComponentの違い: encodeURIは:、/、?、#などURLの構造文字をエンコードしませんが、encodeURIComponentはこれらもすべてエンコードします。
  • 二重エンコーディング: すでにエンコード済みの文字列をさらにエンコードすると、%自体が%25に変換されてしまい、正しくデコードできなくなります。エンコード対象がすでに%XX形式を含んでいないか確認してから変換してください。

ユースケース

  • APIリクエストのクエリパラメータに日本語や特殊文字を含める場合。
  • フォームデータをURLセーフな形式に変換する場合。
  • ブラウザのアドレスバーに表示されるエンコード済みURLの内容を解読する場合。
  • クエリパラメータ内のスペースが「+」と「%20」のどちらで表現されるべきか迷う場合の確認。
  • 日本語ドメインやパスを含むURLを共有可能な形式に変換する場合。

よくある質問

encodeURIComponentとencodeURIはどちらを使えばよいですか
クエリパラメータの値やパスの一部分など、URLの断片をエンコードする場合はencodeURIComponentを使用してください。すでに完成した1つのURL全体をエンコードする場合は、/や?などの構造文字を保持できるencodeURIが適しています。
日本語を含むURLはどのようにエンコードされますか
日本語などのマルチバイト文字はまずUTF-8のバイト列に変換され、各バイトが%XX形式で表現されます。例えば「あ」は3バイトのUTF-8表現になるため、%E3%81%82という3つのパーセントエンコード列に変換されます。
二重エンコードしてしまうとどうなりますか
すでにエンコード済みの文字列を再度エンコードすると、%記号自体が%25に変換され、デコードしても元の文字列に戻らなくなります。変換前に対象の文字列がすでにエンコード済みでないか確認することをおすすめします。
クエリパラメータのどの文字がエンコード対象になりますか
半角スペース・日本語などのマルチバイト文字に加え、&・=・?・#など、URLの構造やクエリの区切りとして意味を持つ記号もエンコード対象です。「URLの記号もすべて変換する」を有効にすると、これらの記号を含めてすべてエンコードされます。
スペースは「+」と「%20」のどちらに変換されますか
本ツールはJavaScript標準のencodeURI・encodeURIComponentに準拠しており、スペースは常に%20に変換されます。「+」によるスペース表現はapplication/x-www-form-urlencoded形式のフォーム送信で使われる別の慣習であり、本ツールでは扱いません。
デコードに失敗するのはどのような場合ですか
「%」の後ろに2桁の16進数が続かない不正な形式(例: 文字列末尾が「%2」で終わっている場合)や、UTF-8として不正なバイト列になっている場合はデコードエラーになります。エンコード前の文字列を再度確認してください。