EZ
EZ2Conv

URLエンコーダー/デコーダー

Web用のURLとテキストをブラウザ上で直接エンコード・デコード。標準、コンポーネント、フォームの3種類のエンコードタイプに対応し、Unicode完全サポート、サーバーアップロードなしです。

設定

14px
0/10000
結果がここに表示されます...

使用方法

  1. エンコードするプレーンテキスト、またはデコードするURLエンコードテキスト(%記号付き)を入力または貼り付けます
  2. エンコードタイプ(標準、コンポーネント、フォーム)を選択し、エンコードまたはデコードをクリックします
  3. ワンクリックコピーボタンで出力エリアから変換結果をコピーします
  4. モード切り替えで、エンコード統計付きでエンコードとデコードをシームレスに切り替えられます
  5. 双方向URLエンコード・デコード
  6. 完全なUnicodeと特殊文字サポート
  7. エラーメッセージ付きリアルタイム検証
  8. サーバーアップロードなし - 完全にクライアント側処理

URLエンコードとパーセントエンコーディングの仕組み

このツールができること

URLが安全に運べる文字は限られています。予約されていない英数字といくつかの記号を除いた文字はすべて、パーセントエンコーディング(%記号のあとに16進数のバイト値が続く形式)に書き換える必要があります。このツールは通常のテキストをそのエンコード形式に変換し、逆方向にも動作して、%20や%26といった並びを元の文字に戻します。

実際に出会う場面を、3つのエンコード方式でカバーします。標準エンコードはJavaScriptのencodeURIに対応し、URL全体を対象とするため、:、/、?、#といった構造上の文字はそのまま残ります。コンポーネントエンコードはencodeURIComponentに対応し、それらの構造上の文字までエスケープするので、パラメータの値のような単独の部分に向いています。フォームエンコードは、ブラウザがフォームを送信するときに使うapplication/x-www-form-urlencodedの規則に従います。

使いどころ

値をクエリ文字列の中に入れるときは、コンポーネントエンコードを選びます。検索語、メールアドレス、あるいはそれ自体に?、&、=を含むリダイレクト先などです。エンコードしておけば、これらの記号がURLの構造として読まれてリンクが壊れることを防げます。標準エンコードは、スペースやアクセント付き文字が紛れ込んだ完全なアドレスを整えたいが、スラッシュや疑問符は意味を保ちたい場合に合います。フォームエンコードは、POSTリクエストの本文や手作業で組み立てたフォームの値に対応し、スペースは%20ではなく+として書かれます。デコードも同じくらいよく使います。ログやアクセス解析レポート、リダイレクトの連鎖から拾ったエンコード済みリンクを貼り付け、実際にどこを指しているのかを読み解く場面です。

具体例

hello world & café というテキストで考えます。コンポーネントエンコードでは、スペースは%20に、アンパサンドは%26になり、café は é がUTF-8で2バイトとして格納されるため caf%C3%A9 になります。フォームエンコードでは、同じスペースが+として書かれ、hello+world となります。リアルタイムの統計は、何文字が変化し、文字列のどれくらいがエンコードされたかを示すので、すでに一度エンコード済みのテキストを見分ける手がかりになります。

注意点とエッジケース

予約文字(: / ? # [ ] @ ! $ & ' ( ) * + , ; =)はURLの中で意味を持つため、標準モードはあえてそのまま残し、コンポーネントモードはエスケープします。モードの選び方を誤ることが、クエリパラメータが壊れる典型的な原因です。エンコードはUTF-8のバイト列を基準に定義されているので、ASCII以外の文字は複数の%XXの並びに展開されます。URLを二重にエンコードしないよう注意してください。すでにエスケープの一部になっている%が単独で%25に変わると、リンクは解決しなくなります。迷ったときは、まずデコードして、テキストが素の状態か、すでにエスケープ済みかを確かめましょう。

よくある質問

標準・コンポーネント・フォームの3つのエンコード方式に加え、デコードとリアルタイムの文字統計まで、制限も料金もなく使えます。有料プランに隠された機能はありません。
エンコードとデコードはお使いの端末のJavaScriptで実行されるため、貼り付けたURL、クエリ値、トークン、フォームの内容はローカルで処理され、サーバーに送信されることはありません。
テキストかエンコード済みの文字列を貼り付けて方式を選ぶと、結果が統計とともにすぐ表示されます。メール登録やログインの手順は一切ありません。
標準(encodeURI)はURL全体向けで、:、/、?、#といった構造文字はそのまま残します。コンポーネント(encodeURIComponent)はそれらもエスケープするので、単一のクエリ値やフラグメントに向いています。フォームはapplication/x-www-form-urlencodedに従い、フォーム送信用にスペースを+として書きます。
方式によって異なります。標準とコンポーネントのエンコードはスペースを%20と書き、フォームエンコードは+を使います。これはapplication/x-www-form-urlencodedの本文での慣例だからです。どちらもデコードすれば通常のスペースに戻ります。
ASCII以外のテキストはまずUTF-8のバイト列に変換され、各バイトが%XXの並びになります。たとえばアクセント付きのéは%C3%A9になり、絵文字はより長い4バイトの並びになります。デコードすれば元の文字に戻ります。