URL エンコーダー

URL 用にテキストをパーセントエンコードします。encodeURIComponent、厳密な RFC 3986、URL 全体(encodeURI)、スペースを + にするフォームデータに対応。UTF-8 対応。

42 文字 · 47 バイト(UTF-8)

0 文字 · 0 バイト(UTF-8)

すべてブラウザ内で実行されます。データがアップロードされることはありません。

URL エンコードとは?

テキストを パーセントエンコード に変換し、URL で安全に使えるようにします。許可された文字以外は UTF-8 のバイト列としてエンコードされ、各バイトが %XX で書かれます。開発者が実際に使うエンコーダーに対応する 4 つのモードがあります。

URL エンコードの使い方

  1. 入力 にテキストを入力または貼り付けます。
  2. エンコード方式 を選びます。クエリの値やパスの一部には コンポーネント – encodeURIComponent、厳密な RFC 3986(!'()* もエンコード)、: / ? & = を残す URL 全体 – encodeURI、application/x-www-form-urlencoded 用の フォームデータ(スペースを + に) があります。
  3. 出力 からエンコードされた文字列をコピーします。

例

入力
a b&c=é
出力
a%20b%26c%3D%C3%A9

コンポーネントモードの結果です。フォームモードでは a+b%26c%3D%C3%A9 になります。

URL エンコードを使うべき場面

個々のパラメーターの値にはコンポーネントモードを使ってください。完全な URL をこれでエンコードしてはいけません。/、?、& までエンコードされてしまうためです。URL 全体モードは、すでに正しい構造になっている URL にだけ使います。HTML フォームの送信や多くのサーバーフレームワークは、フォームモードを想定しています。

URL エンコードの仕組み

テキストは UTF-8 のバイト列に変換されます。選んだモードの安全な文字集合にあるバイトはそのまま残り、それ以外は % と 2 桁の大文字の 16 進数になります。コンポーネントモードは A–Z a–z 0–9 - _ . ! ~ * ' ( ) を残します(JavaScript の encodeURIComponent と同様)。RFC 3986 モードは A–Z a–z 0–9 - . _ ~ だけを残します。URL 全体モードは ; , / ? : @ & = + $ # も残します(encodeURI と同様)。フォームモードは A–Z a–z 0–9 * - . _ を残し、スペースを + として書きます(URLSearchParams と同様)。

一般的な使用例

  • 検索語やリダイレクト先の URL をクエリパラメーターとしてエンコードする
  • OAuth や API 署名のベース文字列を作る(RFC 3986 モード)
  • curl -d 用のフォームのボディを用意する
  • 日本語やベトナム語、中国語のスラッグなど、非 ASCII のパスをエンコードする

よくある質問

スペースは %20 と + のどちらにすべきですか?

%20 は URL のどこでも有効です。+ がスペースを意味するのは、フォームエンコードされたクエリ文字列だけです。その場合は フォームデータ(スペースを + に) モードを選んでください。

encodeURI と encodeURIComponent の違いは何ですか?

encodeURI は URL の構造を作る文字(: / ? # & =)を残し、encodeURIComponent はそれらをエンコードするため、値が URL の構造を壊すことがありません。

é が 2 つのコードになるのはなぜですか?

URL は UTF-8 を使います。é は 2 バイトの C3 A9 で、各バイトが %XX で書かれます。

他のカテゴリを見る