URLエンコーダー
テキストをURL内で安全に使える形にします。
ブラウザ内で動作します。入力した内容はどこにも送信されません。
- コンポーネントまたは完全URIモード
- 空白を+にするオプション
- オフラインでも動作
URLエンコードの方法
- テキストやURLを貼り付けます。
- 単一の値ならコンポーネント、アドレス全体なら完全URIを選びます。
- エンコードされた結果をコピーします。
エンコードされるもの
| 文字 | エンコードされるか | 例 |
|---|---|---|
| 英数字 | されない | 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構造文字もそのままにします。