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()UrlEncodeDecode.encodeURI - •
encodeURIComponent()UrlEncodeDecode.encodeURIComponent
入力 (テキスト)
出力 (エンコード済み文字列)
セキュリティについて
このツールはすべての処理をブラウザ内で行います。入力されたデータが外部サーバーに送信されることはありません。安心してご利用ください。