URLデコーダー
パーセントエンコードされたURLをプレーンテキストに戻します。
ブラウザ内で動作します。入力した内容はどこにも送信されません。
- 不正な入力に分かりやすいエラー
- +を空白にするオプション
- オフラインでも動作
URLデコードの方法
- エンコードされたテキストを貼り付けます。
- Webフォームから来た場合は「+を空白として扱う」をオンにします。
- デコード結果をコピーします。
例:エンコード済みを入力、デコード結果を出力
| エンコード済み | デコード後 |
|---|---|
| Hello%20World | Hello World |
| a%2Bb | a+b |
| caf%C3%A9 | café(アクセント付き) |
| a+b(「+を空白として扱う」オン) | a b |
デコードが失敗する理由
- %の後に有効な16進数2桁が続いていない場合。SAVE10%のような割引コードにある、エンコードするつもりのなかった本物の%であることが多い。
- 異なる2つの情報源からコピーしたテキストで、一部はすでにデコード済み、一部はまだパーセントエンコードされたままの場合。
- エンコードされたバイト列が有効なUTF-8を構成していない場合。テキストが別の文字セットでエンコードされているときに起こります。
エンコードされたURLの由来
- ブラウザのアドレスバー。入力・貼り付けた内容の特殊文字をエンコードします。
- バグ報告やサポートチケットで共有されるサーバーログやクエリ文字列。
- Webhookやリダイレクトリンク。信頼する前にデコードして内容を読む価値があります。
- トラッキングや分析用のリンク。デコードすると、クリック時に送信される正確なパラメータと値が分かります。
URLデコードのFAQ
デコードエラーが出るのはなぜですか?
パーセント記号の後に有効な16進数2桁が続いていないため、正しくパーセントエンコードされていないことを意味します。
「+を空白として扱う」は常にオンにすべきですか?
テキストがフォームやクエリ文字列から来ていて、実際の+記号が空白を意味する場合だけです。パスやBase64の値には本物の+が含まれることがあります。
URLのエスケープ解除と同じことですか?
はい、URL、クエリ文字列、フォームデータで使われる標準的なパーセントエンコードを元に戻します。
URLエンコーダーと同じ標準に従っていますか?
はい。JavaScript標準のdecodeURIComponentを使って、RFC 3986のパーセントエンコードを元に戻します。
エンコードされていない本物のパーセント記号がテキストにある場合は?
%の後に有効な16進数2桁が続いていない限りデコードエラーになります。残りのテキストをデコードする前に、本物のパーセント記号は%25としてエンコードしてください。
クエリ文字列付きの完全なURLもデコードできますか?
はい、アドレス全体を貼り付けてください。クエリ文字列内の値も含め、パーセントエンコードされていた部分がすべて一度にデコードされます。
どのJavaScript関数をラップしていますか?
decodeURIComponentに、+記号を空白として扱う追加オプションを加えたものです。+が空白を意味するのはフォームエンコードされたデータだけの慣習であるため、decodeURIComponent単体ではこれを行いません。
デコードによって通常の英数字は変わりますか?
いいえ。そもそもエンコードされていないため、そのまま変わらずに通過します。