URLエンコーダー

テキストをURL内で安全に使える形にします。

ブラウザ内で動作します。入力した内容はどこにも送信されません。

URLエンコードの方法

  1. テキストやURLを貼り付けます。
  2. 単一の値ならコンポーネント、アドレス全体なら完全URIを選びます。
  3. エンコードされた結果をコピーします。

エンコードされるもの

文字エンコードされるか例
英数字されないa-z、A-Z、0-9はそのまま
- _ . ~されないどちらのモードでもそのまま
空白される%20、またはオプションがオンなら+
/ ? # & =コンポーネントモードのみ完全URIモードではそのまま

コンポーネントモードと完全URIモードの違い

モード/ ? # & =をエンコードするか用途
コンポーネントする1つのクエリ値やパスセグメント
完全URIしないそのまま使う完全なアドレス

パーセントエンコードが必要な場面

  • 検索語のように、空白や特殊文字を含むクエリ文字列の値。
  • アクセント付き文字や他の文字体系など、UTF-8バイトに変換したURL内の非ASCIIテキスト。
  • 1つのパラメータの中に別の完全なURLを含む、リダイレクトやコールバックリンクを作る。

URLエンコードのFAQ

コンポーネントエンコードと完全URIエンコードの違いは何ですか?

コンポーネントエンコードは、1つのクエリパラメータ内で使うために/や&を含むすべての特殊文字をエスケープします。完全URIエンコードは、:、/、?のようなURLの構造を表す文字はそのままにします。これらは有効なアドレスの一部だからです。

「空白を+にする」はいつ使うべきですか?

空白を%20ではなく+として書く、従来型のフォーム送信(application/x-www-form-urlencoded)のときだけです。

どの文字がエンコードされますか?

英数字と- _ . ~はそのままです。それ以外はすべて、パーセント記号とその2桁の16進コードに変換されます。

Web標準に従っていますか?

はい。RFC 3986は、どのURI文字が予約されているか、それ以外をどうパーセントエンコードするかを定めています。このツールはそれに従うJavaScript標準のencodeURIComponentとencodeURIを使用しています。

アクセント付き文字や絵文字はどうエンコードされますか?

まずUTF-8のバイト列に変換され、各バイトが%XXとして書かれます。アクセント付きのeは2バイトのUTF-8になるため%C3%A9になります。

https://を含むアドレス全体をエンコードできますか?

完全URIモードを使ってください。スキーム、ホスト、パスの区切りの/はそのままにし、URLのどこにあっても安全ではない文字だけをエンコードします。

エンコードによって英数字は変わりますか?

いいえ。A-Z、a-z、0-9はどちらのモードでもエンコードされません。URL内でそのまま使っても常に安全な文字だからです。

このツールの背後にある2つのJavaScript関数の違いは何ですか?

コンポーネントモードはencodeURIComponentを使い、クエリパラメータのような単一の値を想定して非予約文字以外をすべてエスケープします。完全URIモードはencodeURIを使い、完全なアドレスを想定しているため予約されたURL構造文字もそのままにします。

関連ツール