URLデコードとは?
URLデコード(パーセントデコードとも呼ばれる)は、URL内のエンコードされた文字を元の形式に変換するプロセスです。データがURLを介して送信される際、特殊文字はパーセント記号(%)とそれに続く2桁の16進数に置き換えられます。例えば、%20はスペース文字を表し、%26はアンパサンド(&)を表します。
無料URLデコーダー – ブラウザでURLを即時デコード/エンコード。高速・プライベート・インストール不要。
エンコードされたURLをコピーして、上の入力フィールドに貼り付けます。
入力と同時にツールが自動的にリアルタイムでURLをデコードします。
コピーボタンをクリックして、デコードされたURLをクリップボードに保存します。
URLエンコーディングの複数の層を自動検出し、結果が安定するまでデコードします。
国際テキストや絵文字を含むUTF-8エンコード文字を完全サポート。
不正なURLエンコーディングを識別し、デバッグのための明確なエラーメッセージを提供します。
すべての処理はブラウザ内で行われます。データがデバイスから外部に送信されることはありません。
URLのパーセントエンコーディング は、URL内の特殊文字をエンコードするための基本的なメカニズムです。 %20 や %26のような文字が見られる場合、これらはパーセント記号(%)とそれに続く特定の文字に対応する16進数値を表しています。
UTF-8デコーディング は、URL内の国際文字を処理するために不可欠です。当ツールはUTF-8エンコードされたコンテンツを完全にサポートしており、中国語、日本語、アラビア語、絵文字など、あらゆる言語の文字を含むURLをデコードできます。
の理解はWeb開発に不可欠です。URLはプロトコル、ドメイン、パス、クエリパラメータ、フラグメントなど複数の部分で構成されています。予約文字を含む場合、各コンポーネントはエンコードが必要になることがあります。例: URLの構成要素 ?, &, =, #.
REST APIデバッグ。APIを使用する際、エンコードされたクエリパラメータやパスセグメントに遭遇することがよくあります。これらのURLを素早くデコードできることで、APIリクエストの問題を特定し、実際に送信されているデータを理解するのに役立ちます。
パーセントエンコーディングに出会うのはアドレスバーだけではありません。OAuth の redirect_uri のクエリ文字列、プッシュ通知内のディープリンク、マーケティングメールのトラッキングリンク、Web サーバーログに記録されたパスセグメント——すべてにエンコード済みデータが含まれています。手作業でのデコードは遅くて間違いやすいため、このページが貼り付けた瞬間に代行します。
つまずきやすいポイントがひとつあります。HTML フォーム送信(application/x-www-form-urlencoded)では + 記号はスペースを意味します。しかしパーセントエンコードされた URL では、+ は単なるプラスです。同じ入力が出自によって違う結果になるのはそのためで、フォーム形式のデータで文字通りのプラスを表すために %2B が存在する理由でもあります。このデコーダーは URL 標準に従い、パーセントシーケンスをデコードして + はそのまま残します。
以下の 8 つのシーケンスが、実際の URL で目にする大部分を占めます。公開前に、この表のすべての対応を WHATWG URL Standard と照合して確認しました。
| エンコード | デコード | よく現れる場面 |
|---|---|---|
%20 | space | 定番。入力されたスペースは URL では必ず %20 になります。 |
%23 | # | 文字としてのハッシュ。生の # はフラグメントを始めてしまうため、データの場合はエンコードされます。 |
%26 | & | 文字としてのアンパサンド。生の & はクエリパラメータを分割してしまいます。 |
%3D | = | 文字としての等号。生の = はキーと値を区切ってしまいます。 |
%3F | ? | 文字としての疑問符。生の ? はクエリ文字列を始めてしまいます。 |
%2B | + | 文字としてのプラス記号。クエリ文字列では多くのサーバーが裸の + をスペースとして読むため、本物のプラスはエンコードが必要です。 |
%25 | % | パーセント記号そのもの。必ずエンコードされます。でないとデコーダーがシーケンスを誤読します。 |
%2F | / | 値の中のスラッシュ。パスでは生のまま残されることが多いですが、クエリデータでは残りません。 |
ブラウザのアドレスバーからコピーしてきたような、こんな URL を例にします:
https://api.example.com/search?q=hello%20world&lang=zh%26en? より前がパス、後ろがクエリ文字列です。クエリ内の各ペアは & で区切られます。
デコーダーは hello%20world と zh%26en の 2 つの値を読み取り、各パーセントシーケンスを元の文字に戻します。
q は hello world に、lang は zh&en になります。zh%26en の中の & は区切り文字ではなくデータなので、デコードしても構造は壊れません。
JavaScript での同じデコード:
const url = "https://api.example.com/search?q=hello%20world&lang=zh%26en";
const params = new URLSearchParams(new URL(url).search);
console.log(params.get("q")); // "hello world"
console.log(params.get("lang")); // "zh&en"実行すると出力はこうなります:
hello world
zh&en1 回で 1 層ずつ。URL が 2 回エンコードされている場合、ソースには %2520 が見えます。1 回目のデコードで %20、2 回目でスペースになります。このページのデコーダーは追加の層を検出してまとめて解決します。
URL は手作業でも、ブラウザコンソールでも、サーバーサイドスクリプトでもデコードできます。一般的な方法を比較すると:
| 方法 | UTF-8 | 多層 | 使いどころ |
|---|---|---|---|
| URL Decode Online | はい | はい(自動) | 日常的なデコード: 貼り付けるだけで完全なデコード済みテキストが得られ、不正なシーケンスは警告されます。 |
| 手作業でコードを読む | 遅い | 混乱しやすい | 単一文字なら現実的ですが、%E4%B8%AD = 中 には UTF-8 バイト表の暗記が必要です。 |
| decodeURIComponent() | はい | いいえ | DevTools コンソールでの素早い確認向け。不正な入力では URIError をスローします。 |
| Python unquote() | はい | いいえ | サーバーサイドスクリプトやログパイプライン向け。unquote_plus は + もスペースに変換します。 |
| curl --data-urlencode | はい | いいえ | デコードではなくエンコード用: 端末でのテストリクエスト作成に便利で、スペースはフォーム形式の + として書かれます。 |
パーセントエンコード文字列は、壊れたリンクの修正以外の多くのワークフローに登場します:
URLデコード(パーセントデコードとも呼ばれる)は、URL内のエンコードされた文字を元の形式に変換するプロセスです。データがURLを介して送信される際、特殊文字はパーセント記号(%)とそれに続く2桁の16進数に置き換えられます。例えば、%20はスペース文字を表し、%26はアンパサンド(&)を表します。
このページの上部にある入力フィールドにエンコードされたURLを貼り付けるだけです。当ツールは入力と同時に自動的にリアルタイムでURLをデコードし、即座に結果を表示します。ワンクリックでデコードされた結果をコピーできます。登録、支払い、ソフトウェアのインストールは不要です。 部分エンコードされた URL を貼り付けることもできます。デコーダーはそれ以上デコードできなくなるまで続け、処理した層の数を表示します。
パーセントエンコーディング(URLエンコーディングとも呼ばれる)は、限られたASCII文字セットのみを使用してURL内の情報をエンコードするメカニズムです。特殊文字はパーセント記号(%)とそれに続く16進数のASCII値に置き換えられます。これにより、データの破損なしにURLをすべてのシステムで安全に送信できます。 たとえば絵文字 😀 は %F0%9F%98%80 になります。これは 4 バイトの UTF-8 を 16 進数で書き出したものです。
URLには限られたASCII文字セットのみを含めることができます。スペース、アンパサンド、疑問符、非ASCII文字(UTF-8国際テキストなど)などの特殊文字は、URLで安全に送信するためにエンコードする必要があります。これにより、URLは世界中のすべてのブラウザ、サーバー、システムで正しく機能します。 これらの文字を生のままにすると URL の意味が変わります。& はパラメータを分割し、# はフラグメントを始め、多くのサーバーは生のスペースをそのまま拒否します。
基本的なサイト機能とプライバシー重視の統計のため、および(同意いただいた場合の)Google Analytics と広告のために Cookie を使用します。 プライバシーポリシー