仕様と根拠

何をしているか

WHATWG のアドレス仕様(1.3)では、percent-decode は「%」の後に 16 進 2 桁が続く部分をそのバイトに戻す処理、UTF-8 percent-encode は文字を UTF-8 に符号化してから各バイトを「%」+大文字の 16 進 2 桁にする処理と定められています。パスやクエリの percent-encode set は U+007E より大きい文字を含むため、日本語は %XX の列になります。

UTF-8 としての復号

続く %XX を 1 まとまりのバイト列として読み、WHATWG の Encoding Standard が定める utf-8 decoder と同じ範囲(先頭バイト C2〜F4、継続バイト 80〜BF。E0・ED・F0・F4 は第 2 バイトの範囲に例外)で文字に直します。無効なバイトはそのまま %XX で残し、エラーとして位置を示します。

ASCII の扱い

%20(空白)や %2F(スラッシュ)などの ASCII は、アドレスの区切りとして意味を持つため、既定では戻しません。戻す設定にしたときも、/ ? # & = + % のような区切りを戻した場合は、意味が変わる旨を警告します。

根拠にした仕様・資料

仕様・資料と確認日
仕様・資料確認日使った箇所
WHATWG URL Standard(Living Standard・2026-10-19)2026年10月29日1.3 percent-decode・UTF-8 percent-encode・path/query percent-encode set。「%」の後が 16 進 2 桁でない場合、percent-decode は「%」をそのまま残す(URL パーサーでは検証エラー invalid-URL-unit)
WHATWG Encoding Standard(2026-10-19)2026年10月29日8.1.1 utf-8 decoder(先頭バイト・継続バイトの有効範囲)

指摘の段階

入力の扱い(送信しない仕組み)

処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。

このツールでできないこと(制約)

ご利用にあたって

  • 入力した文章はブラウザの中だけで処理し、サーバーへは送信しません。ただし、コピーやダウンロードした結果の扱いにはご注意ください。
  • 復号した結果をそのままアドレスとして使うと、空白や区切り記号の扱いが変わることがあります。用途に合わせて確認してください。