URLエンコーダー・デコーダー・インスペクター
仕様が本当に求めているプロファイルでエンコードし、二重エンコードされたリダイレクトを展開し、リンクを認証情報と本当のホスト名まで分解し、クエリ文字列を手で編集し、トラッキングパラメータをワンクリックで一掃します。
JavaScriptの挙動そのもの。A-Z a-z 0-9 と - _ . ! ~ * ' ( ) 以外をすべてエスケープします。単一の値には使えますが、サブデリミタはそのまま残ります。
使い方
リンクが届く
貼り付けるか、リンクが詰まった .txt を開くか、別のoLoveToolsのツールから結果をそのまま受け取ります。あなたが頼むまで何も処理されません。
分解される
スキーム、認証情報、本当のホスト名、ポート、パスの各セグメント、そしてすべてのパラメータが、生の形とデコード後の形を並べて表示されます。
あなたが直す
キーの名前を変え、クエリ文字列を並べ替え、二重エンコードのリダイレクトを展開し、トラッカーを全部落とす。Ctrl+Zでどれでも取り消せます。
きれいになって出ていく
コピーするもよし、一括結果をCSVやJSONで書き出すもよし、ダウンロードフォルダを経由せずに別のツールへ送るもよしです。
8つのエンコードプロファイル
encodeURIComponentとencodeURIは答えの2つにすぎません。RFC 3986厳密、form-urlencoded、パス、クエリ、フラグメント、RFC 5987も揃っており、それぞれいつ使うべきかの説明が付きます。
編集できるクエリ文字列
キーの名前を変え、値を書き換え、行を並べ替え、不要なものを消す。一度も触らなかったパラメータはバイト単位でそのまま書き戻され、+ と %20 の違いさえ保たれます。
ワンクリックでトラッカー削除
utm_*、fbclid、gclid、msclkid、mc_eid など数十種類を出所ごとに分類し、掃除で何バイト減ったかを正確に示します。
何がおかしいか教えてくれる
平文の認証情報、そっくりな文字で綴られたホスト名、実は別のURLだったパラメータ、二重に適用されたエスケープ — クリックする前にすべて指摘します。
二重エンコードを展開
リダイレクトの連鎖は2重3重にエンコードされて届きます。「変化しなくなるまでデコード」なら一度で展開し、何回かかったかも教えてくれます。
リストごと一括処理
リンクを並べたテキストファイルを渡せば一度にすべて掃除し、URLごとの削減量を添えてCSVやJSONで書き出せます。
正しいエスケープは、その値がどこに置かれるかで決まる
パスセグメント、クエリ文字列、フォーム本体、Content-Dispositionヘッダー — 同じ値でも行き先ごとに4種類の異なるエスケープが必要ですが、JavaScriptはそのうち2つしか用意していません。URLBoltは8つすべてを備え、それぞれがどの文字をそのまま残すかを示し、どこかに貼り付ける前に「デコードすれば入力が正確に戻る」ことまで検証します。
何もブラウザの外に出ません
エンコード、デコード、解析、punycode変換、トラッカー削除、一括処理 — すべての操作が、あなた自身のタブの中でブラウザ標準のAPIによって動きます。アップロードも、リクエストも、サーバー側の処理も、記録されるものもありません。解析したいリンクほど他人のサーバーに送りたくないものです。だからこそ、どれも外へは出しません。
壊れて届くリンクのために
3回リダイレクトするアフィリエイトURL、トラッキングパラメータを十数個ぶら下げたキャンペーンリンク、二重にパーセントエンコードされたAPIコールバック、認証部にパスワードが残った古いエンドポイント、端末では xn-- としか見えない国際化ドメイン。URLBoltはそのすべてを読み、punycodeのホスト名を人が書くとおりの形で見せ、入れ子のリダイレクトを展開し、テキストエディタでアドレス全体を組み直す代わりにクエリ文字列を手で直させてくれます。
登録も、1日あたりの制限も、便利な機能を隠す有料プランもありません。開いたファイルはローカルで読まれるだけで送信されず、タブを閉じればすべて忘れられます。
よくある質問
QencodeURIComponentとencodeURIの違いは?+
encodeURIはアドレス全体をエスケープしますが、URLの構文を作る文字(: / ? & = + $ , #)はそのまま残すため、結果はURLとして機能し続けます。encodeURIComponentはそれらもエスケープするので、パラメータ1つ分の値に向いています。どちらも ! ' ( ) * はエスケープしないため、リクエストに署名する用途なら「RFC 3986 厳密」プロファイルの方が適切でしょう。
Qデコードした文字列に % が残るのはなぜ?+
入力に壊れたエスケープが含まれていたからです。% の後ろの16進数が2桁に満たない、あるいはそもそも16進数でない場合がそれにあたります。URLBoltは文字列全体を捨てる代わりに、その % をそのまま残し、他をすべてデコードしたうえで、問題の正確な位置を一覧にします。どこでリンクが切れたのかが分かります。
Q空白を %20 ではなく + にすべきなのはいつ?+
application/x-www-form-urlencoded の本文やクエリ文字列の中、つまりHTMLフォームが送る形式では空白は + です。パスセグメントを含むそれ以外の場所では %20 になります。これを取り違えるのがURL最大の定番バグなので、両方向にスイッチを用意し、いまどちらが有効かをエンコーダーが明示します。
Qトラッキングパラメータを消すとリンクは壊れませんか?+
ほとんど壊れません。utm_*、fbclid、gclidなどを読むのは解析ツールであってページではないため、無くても行き先は同じです。本物である場合もある ref、source、s は既定では残り、強めのオプションを選んだときだけ削除されます。
Qホスト名の下にあるpunycodeの行は何ですか?+
ブラウザは国際化ドメイン名を送信前に xn-- で始まるASCII形式へ変換します。URLBoltはそれを読める形に戻し、1つのラベルが複数の文字体系を混ぜている場合には警告します。偽装ドメインでキリル文字の а をラテン文字の a に見せかける手口は、まさにこれです。
Qサーバーに何か送信されますか?+
いいえ。エンコード、デコード、解析、punycode変換、一括処理はすべて、あなたのタブで動くブラウザ標準のAPIです。どの時点でもネットワークリクエストは発生しないため、ページさえ読み込めばオフラインでも動作します。