{ }JSONKit.tools

URL デコード(オンライン)

%20 とその仲間を読めるテキストに戻します。「コンポーネント」はすべてをデコードし、「URL 全体」はアドレスの構造を作る予約文字を残します。

エンコード⇄デコード
モード

エンコード済み

テキスト

入力を待っています…

このツールについて

パーセントエンコードされたテキストは設計上読めないもので、しかも肝心な部分 — リダイレクト先、検索語、署名付きのコールバック — がたいてい一番ひどい状態です。デコードは元の文字を復元し、パーセントエスケープを UTF-8 として読むため、非ラテン文字も正しく戻ります。文字列が途中で切れていたり、迷子の % が含まれていたりする場合は、壊れた結果ではなく明確なエラーが返ります。

使い方

  1. 1エンコードされたテキストを左のパネルに貼り付けます。
  2. 2単一の値なら「コンポーネント」、完全なアドレスなら「URL 全体」を使います。
  3. 3読めるようになったテキストをコピーします。逆方向は URL エンコードのページです。

よくある質問

›デコードしたのに空白のはずの場所にプラス記号が残っています。

フォームの送信は空白を %20 ではなく + として符号化します。この慣習はフォームのボディに属するもので、URL 一般のものではありません。文字列が HTML フォーム由来なら、デコード前に + を空白へ置き換えてください。

›「URI malformed」とはどういう意味ですか?

入力中の % の後ろに有効な 16 進数 2 桁が続いていないか、エスケープの並びが有効な UTF-8 になっていないということです。たいていは文字列が途中で切れているか、リテラルの % が %25 として符号化されていません。

›「コンポーネント」と「URL 全体」のどちらを使うべきですか?

「コンポーネント」はすべてをデコードします。クエリ文字列から取り出した単一の値にはこちらです。「URL 全体」は予約文字(& = ? / #)をエンコードされたまま残すため、アドレス全体をデコードしてもエスケープされたスラッシュが構造に変わりません。

›文字列が二重にエンコードされているのはなぜですか?

二重エンコードです。%2520 は %20 をもう一度エンコードしたもので、値が 2 段階の符号化を通ったことを意味します。もう一度デコードすれば元に戻ります。

›クエリ文字列全体を一度にデコードできますか?

できますが、先に全体をデコードすると、本当の区切りと値の一部だった & を見分けられなくなります。まず & と = で分割し、それから 1 つずつデコードしてください。