URLデコーダー

パーセントエンコードされたURLをプレーンテキストに戻します。

ブラウザ内で動作します。入力した内容はどこにも送信されません。

URLデコードの方法

  1. エンコードされたテキストを貼り付けます。
  2. Webフォームから来た場合は「+を空白として扱う」をオンにします。
  3. デコード結果をコピーします。

例:エンコード済みを入力、デコード結果を出力

エンコード済みデコード後
Hello%20WorldHello World
a%2Bba+b
caf%C3%A9café(アクセント付き)
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単体ではこれを行いません。

デコードによって通常の英数字は変わりますか?

いいえ。そもそもエンコードされていないため、そのまま変わらずに通過します。

関連ツール