変換結果
変換結果
| 1 |
URLエンコード・デコードツールについて
URLエンコード・デコードツールについて
概要
URLエンコード・デコードツールは、URLで使用できない文字を%XX形式に変換(エンコード)、またはその逆変換(デコード)を行うオンラインツールです。encodeURIとencodeURIComponentの2種類のJavaScriptメソッドに対応しています。日本語を含むURLの生成や、APIリクエストのクエリパラメータ作成、既存URLの内容確認など幅広い場面で利用できます。
使い方
- 1「変換する文字列」に変換したい文字列を入力します。
- 2「モード」を「エンコード」または「デコード」から選択します。
- 3「URLの記号(/ や ? など)もすべて変換する」をオンにするとencodeURIComponent相当(記号もすべてエンコード)、オフにするとencodeURI相当(URLの構造文字は保持)の動作になります。
- 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として不正なバイト列になっている場合はデコードエラーになります。エンコード前の文字列を再度確認してください。