Safe Tools

URL エンコード / デコード

URLパラメータなどを安全にエンコード・デコード。ブラウザ内で完結します。

📖パーセントエンコーディングの仕様と注意点を見る

URLエンコード(パーセントエンコーディング)とは?

URLには、アルファベット、数字、および一部の記号(-, ., _, ~ など)しか使用できないという厳密なルール(RFC 3986)があります。

日本語などのマルチバイト文字や、URLの制御に使われる「予約文字」をURLデータとして送信したい場合、それらを % と16進数を用いた安全な文字列に変換する必要があります。

エラーの原因になりやすい「予約文字」

以下の記号はURL内で特別な意味を持つため、パラメータの値として送る場合は必ずエンコードしなければなりません。

  • •?: クエリストリング(パラメータ)の開始を表します。
  • •&: 複数のパラメータを区切る役割を持ちます。
  • •=: パラメータのキーと値を結びつけます。
  • •#: ページ内の特定の場所(フラグメント)を指し示します。
  • •/: パスの階層を区切ります。

半角スペースは %20 か + か?

実務で非常に混同されやすいポイントです。仕様によってスペースのエンコード結果が異なります。

  • •%20(RFC 3986): URIの標準的な仕様です。URLのパス部分や、一般的なAPIリクエストではこちらが推奨されます。
  • •+(application/x-www-form-urlencoded): HTMLのフォーム(<form>)からPOST送信される際の古い仕様です。現在でも一部のWebシステムや言語の標準関数で、スペースが + に変換されることがあります。

JavaScriptにおける関数の使い分け

JavaScriptでエンコードを行う場合、用途に合わせて2つの関数を使い分ける必要があります。

  • •encodeURI(): URL全体をエンコードする際に使用します。? や / などの予約文字は変換されません。
  • •encodeURIComponent(): URLの「パラメータの値」のみをエンコードする際に使用します。? や / などもすべて % 形式に変換されるため、実務ではこちらを使用するケースが圧倒的に多くなります。

入力 (テキスト)

出力 (エンコード済み文字列)

セキュリティについて

このツールはすべての処理をブラウザ内で行います。入力されたデータが外部サーバーに送信されることはありません。安心してご利用ください。