ブラウザと同じように、リンクをプロトコル、ホスト、ポート、パス、クエリ、フラグメントに分解します。
URLエンコード/デコード
ツール自体は英語ですが、このページではお客様の言語でその使い方を説明しています。
URLエンコード/デコード を使用してください
機能の説明
フィッシングリンクに隠されたリダイレクト先などのパーセントエンコードされたテキストをデコードするか、encodeURIComponentやencodeURIでURLに使うテキストをエンコードします。
すべてブラウザ上で動作します。入力した内容は一切アップロードされません。
URLエンコード/デコード の使い方
- テキストを貼り付ける. エンコードされた文字列(たとえばurl=やredirect=パラメータの値)、またはエンコードしたいプレーンテキストを貼り付けます。
- 操作を選ぶ. %XXの並びを文字に戻すにはdecode、1つの値をエンコードするにはencodeURIComponent、アドレス全体をエンコードするにはencodeURIを押します。
- 出力を読む. 結果はボタンの下の枠に表示されます。Errorは、入力がその操作に対して有効でないことを意味します。
- 必要ならもう一度デコードする. decodeを押すたびに1層はがされます。%25、%3A、%2Fがまだ見える場合は、出力を枠に貼り付け直してもう一度デコードしてください。
- コピーまたは引き渡し. Copyで結果をコピーします。Send to…は結果をLink Unwrapper、Multi-Layer Decoder、URL Defanger、Homoglyph Checkerに渡します。
例
エンコードされたリダイレクト先
https%3A%2F%2Flogin.example.com%2Fverify%3Fuser%3Dalice%40example.com%26step%3D2https://login.example.com/verify?user=alice@example.com&step=2デコードするとhttps://login.example.com/verify?user=alice@example.com&step=2になります。フィッシングリンクは、偽のログインページに入力させるため、このように受信者のメールアドレスを含んでいることがよくあります。
チェック対象
| シグナル | その意味 |
|---|---|
| デコード結果 | すべての%XXの並びが、UTF-8として読んだ対応する文字になります。中に2つ目の完全なアドレス、メールアドレス、スクリプトがないか探してください。 |
| 出力に残る%25 | %25はエンコードされたパーセント記号です。出力にまだ%3A、%2F、%25が含まれている場合、元のテキストはおそらく二重にエンコードされています。ぱっと見で移動先がわからないようにするよくある方法です。 |
| Error | デコードは、単独の%、16進数でない文字が続く%、不完全なUTF-8の並びで失敗します。エンコードが失敗するのは壊れたサロゲートペアの場合だけで、貼り付けたテキストではまれです。 |
| プラス記号 | decodeは+をそのまま残します。フォーム形式のクエリ文字列では+は空白を意味するため、自分でそのように読み替えてください。 |
| encodeURIComponentの出力 | 英字、数字、ハイフン、アンダースコア、ドット、チルダなどのいくつかの記号を除くすべてをエンコードするため、: / ? & = #や@もすべてエンコードされます。メールアドレスなど、1つのパラメータ値に使ってください。 |
| encodeURIの出力 | : / ? & = # @など、URLの構造を作る文字は残し、空白やASCII以外の文字をエンコードします。 |
| ASCII以外の文字 | エンコードでは、ASCII以外の各文字が2〜4個の%XXバイトで書かれます。このように隠されたキリル文字やアクセント付きの文字は、デコードして初めて見えるようになります。 |
その他の例
二重にエンコードされたリダイレクト先
https%253A%252F%252Fexample.net%252Flogindecodeでhttps%3A%2F%2Fexample.net%2Floginになります。その出力をもう一度デコードするとhttps://example.net/loginになります。
1つのパラメータ値としてのメールアドレス
alice@example.com&next=/accountencodeURIComponentでalice%40example.com%26next%3D%2Faccountになるため、&や/でクエリが分割されなくなります。
空白とアクセント記号を含むアドレス全体
https://example.org/search?q=café & teaencodeURIでhttps://example.org/search?q=caf%C3%A9%20&%20teaになります。&は残るため、teaは新しいパラメータの始まりになってしまいます。値にはencodeURIComponentを使ってください。
よくある質問
3つのボタンの違いは何ですか?
encodeURIComponentは、英字、数字、- _ . ~などのいくつかの記号を除くすべてをエスケープするため、1つのパラメータ値に適しています。encodeURIは: / ? & = #などのURLの構造を保ち、decodeは%XXの並びを元に戻します。
デコードでErrorが出たり、%2Fが残ったりするのはなぜですか?
単独の%や、途中で切れた%E0%A4のような不正な並びがあるとデコードに失敗し、ツールはErrorと表示します。1回の実行ではがすのは1層だけなので、二重にエンコードされたテキスト(%252F)はもう一度デコードするかMulti-Layer Decoderを使う必要があります。また、+は空白に変換されません。
テキストはどこかへ送信されますか?
いいえ。エンコードとデコードは、このページ上でブラウザの組み込み関数を使って行われます。何もアップロードされず、リンクが開かれることもありません。
そもそもフィッシングリンクがエンコードされるのはなぜですか?
エンコードすると読めるアドレスがパラメータの中に隠れるため、プレビュー、フィルター、ぱっと見では最初のホストしか見えません。リダイレクトサービスやメールスキャナーも、リンクをラップするときに移動先をエンコードします。
デコードでテキストの他の部分は変わりますか?
いいえ。変わるのは%XXの並びだけです。英字や+記号はそのまま残り、HTMLエンティティも変換されません。
Safe Linksのアドレスのような、ラップされたリンク全体をデコードするにはどうすればよいですか?
Link Unwrapperを使ってください。移動先を保持しているパラメータを見つけ、1層ずつデコードします。このツールは文字列全体を一度にデコードするため、ラッパーに属する部分もデコードされてしまいます。
アクセント付きの文字やキリル文字が複数の%XXのグループになるのはなぜですか?
ASCII以外の文字は、まずUTF-8のバイト列として書かれ、各バイトが個別にエンコードされます。éは%C3%A9に、キリル文字のаは%D0%B0になります。