URLエンコード・デコード
日本語URLを半角英数字・記号に変換します
URLエンコード・デコード
日本語URLを扱う場合にどうぞ
このツールでできること
URLをエンコード( あ → %E3%81%82 )できます。
デコード( %E3%81%82 → あ )も可能です。
使い方
デコードするかエンコードするかを選択します
変換する文字列を入力します
変換ボタンをクリック
1 デコードするかエンコードするかを選択します
2 エンコードする文字列を入力します
3 変換ボタンをクリック
URLエンコードについて
URLに日本語が含まれた場合、ブラウザによっては日本語部分が認識できず、正しくリンクされない事があります。
これはブラウザが基本的には半角英数字や一部の半角記号しか扱えない為です。
最近のブラウザは日本語URLにも対応してきていますが、実はブラウザ側で半角英数字や記号に変換して処理しているだけです。
日本語URLに対応していないブラウザもありますので、URLに日本語が含まれる場合には初めから半角英数字・記号に変換しておくと良いでしょう。
URLを半角英数字・記号に変換する事を「URLエンコード」といいます。逆に日本語に戻す事を「URLデコード」といいます。
💡 URLエンコードの雑学・Tips
📜 URLに使える文字はRFCで厳密に定義されている
URLで使用できる文字はRFC 3986で定められており、英数字と - _ . ~ の4記号のみが「非予約文字」として無変換で使用できます。それ以外の文字(日本語・スペース・記号など)はすべて %XX 形式のパーセントエンコーディングに変換する必要があります。
🔤 スペースの変換は「%20」と「+」の2種類ある
スペースのエンコードには %20(RFC 3986準拠)と +(application/x-www-form-urlencoded形式)の2種類が存在します。encodeURIComponent() は %20 を使いますが、HTMLフォームのGETリクエストでは + が使われるため、受け取る側の処理方式によって正しく使い分ける必要があります。
🌐 国際化ドメイン(IDN)とPunycode
「日本語.jp」のようなドメイン名(国際化ドメイン名・IDN)は、URLエンコードではなく「Punycode」という別の変換方式が使われます。例えば「日本語.jp」は xn--wgv71a309e.jp に変換されます。ブラウザのアドレスバーで日本語ドメインが表示されていても、実際の通信では必ずPunycodeが使われています。
⚠️ 二重エンコードに注意
すでにエンコードされた文字列をさらにエンコードすると「二重エンコード」が発生します。例えば %E3%81%82 をエンコードすると %25E3%2581%2582 となり、デコード時に元の「あ」に戻らなくなります。WebアプリのURLパラメータ処理で文字化けが起きる原因の多くはこの二重エンコードです。
🔒 URLエンコードはセキュリティでも重要
URLエンコードはセキュリティ対策としても欠かせません。ユーザー入力をURLパラメータにそのまま埋め込むと、& や = などの記号によってパラメータが意図せず改ざんされる「オープンリダイレクト」や「クエリ文字列インジェクション」の脆弱性につながります。入力値は必ずエンコードしてからURLに組み込むことがWebセキュリティの基本です。