使い方
エンコードタブでテキストやURLの一部を入力すると、その下に結果が表示されます。デコードタブで %E3%81%82 のようなエンコードされた文字列を貼り付けると、元の文字に戻ります。入力すると同時に結果が更新され、隣のコピーボタンでそのまま取得できます。
encodeURIComponentとencodeURIの違い
どちらの関数もURLに使えない文字を「%」に続けて16進数コードを付ける形式(パーセントエンコーディング)に変換しますが、エスケープする範囲が異なります。
- encodeURIComponent(値ひとつ):
/、?、&、#、:、@などURLの区切り文字として使われる文字まですべてエスケープします。クエリパラメータひとつの値のように、URLの「一部」を作るときに使います。例えば検索語a/b&cをクエリの値に入れる場合、a%2Fb%26cのようにエンコードしないと、&が次のパラメータの区切りと誤認されてしまいます。 - encodeURI(URL全体): すでに
/、?、&、#などで構造ができている完全なURLを扱うときに使います。これらの区切り文字はそのままにし、空白や非ASCII文字などそれ以外だけをエスケープします。完全なURLにencodeURIComponentを使うと、://の/や?までエンコードされてしまい、URLが壊れます。
例えば a b/c?d を両方の方式でエンコードすると結果が異なります。componentは a%20b%2Fc%3Fd、fullは a%20b/c?d になります。どちらを使うかは、「今作ろうとしているのがURLの一部か、完全なURLか」で判断してください。
+ を空白として扱う(application/x-www-form-urlencoded)
HTMLの <form> がGETやPOSTで送信する値は application/x-www-form-urlencoded 方式を使いますが、この方式では慣習として空白を %20 ではなく + でエンコードします。「+ を空白として扱う」オプションをオンにすると、エンコード時には %20 の代わりに + を使い、デコード時には + を空白として解釈します。フォーム送信データや application/x-www-form-urlencoded のリクエストボディを扱うときだけオンにし、通常のURLパスやファイル名を扱うときはオフのままにしてください。オフのままなら + はそのままの文字として扱われます。
URL構造の分析
分析欄に完全なURL(https:// などプロトコルを含む)を貼り付けると、プロトコル、ホスト、パス、ハッシュ、そしてクエリパラメータを表に分けて表示します。クエリの値は自動的にパーセントデコードされるため、?q=hello%20world のようにエンコードされたクエリ文字列も読みやすい値として確認できます。同じキーが複数回出てくる場合(?tag=a&tag=b)は、それぞれ別の行として表示されます。
よくあるエラー
パーセントエンコーディングは % の後に16進数2桁が続く必要があります(%20 のように)。単独の %、16進数でない文字(%zz)、またはマルチバイト文字の%XXの組み合わせが崩れている場合、デコードできないというエラーが表示されます。エンコードに使った方式(component/full)と異なる方式でデコードすると意味が変わることがあるため、同じ方式を選んでください。
プライバシー
入力した内容はこのブラウザの中だけで処理され、サーバーには送信されません。ページを閉じるとすべての内容が消えます。