メインコンテンツへスキップ

URLエンコード/デコード

URL・クエリ文字列をパーセントエンコード・デコード。日本語や記号を含むURLの変換に。ブラウザ完結。

形式

処理はブラウザ内で完結し、入力内容は外部に送信されません。

このツールの使い方

  1. URLまたはクエリ文字列を入力する
  2. 「URLエンコード」または「URLデコード」を押す
  3. クエリの値に使う場合は「全記号」、URL全体を扱う場合は「URL構造は保持」を選ぶ
  4. 結果をコピーする

パーセントエンコードとは

URLで使える文字は英数字と一部の記号に限られます。日本語・スペース・& などをそのままURLに入れると、 区切り記号と誤解されたり壊れたりします。そこで、使えない文字をバイトに分解し、各バイトを %XX(16進数)で表すのがパーセントエンコードです。

あ → UTF-8で E3 81 82 → %E3%81%82
(半角スペース) → %20 / & → %26

encodeURIComponent と encodeURI の違い(最重要)

JavaScriptには2つの関数があり、取り違えるとURLが壊れます。違いは「URLの区切り記号もエンコードするか」です。

関数(本ツール)/ ? : @ & =使う場面
encodeURIComponent(全記号)エンコードするクエリの「値」1つずつ。リダイレクト先URLを値に入れるとき
encodeURI(URL構造は保持)残すURL全体をまとめて整えるとき

鉄則:「値」は encodeURIComponent(全記号)。例えば ?redirect= の後に別のURLを入れるとき、 構造保持で処理するとその中の ?& が区切りと誤解され、パラメータが壊れます。

つまずきやすいポイント

  • スペースは %20+ か:URLパス・クエリの標準は %20。ただし application/x-www-form-urlencoded(フォーム送信)では + がスペースを表します。デコード時は文脈に注意。
  • 二重エンコード:すでにエンコード済みの文字列を再度エンコードすると % 自体が %25 になり、%2520 のように壊れます。エンコードは1回だけ。
  • 予約文字と非予約文字:- _ . ~ はエンコード不要(非予約文字)。それ以外の記号は用途に応じてエンコードします。

よくある用途

  • ・日本語や記号を含む検索キーワードをURLに埋め込む
  • ・受け取ったURLの % エンコードを元に戻して内容を確認する
  • ・OAuthのリダイレクトURLやUTMパラメータを、値として安全にエンコードする
  • ・ログやWebサーバーの記録に残ったエンコード済みURLを読み解く

関連ツール

広告

関連ツール

一緒によく使われます