URL エンコードとは
URL に使える文字は英数字と一部の記号に限られています。日本語やスペースを URL に含めるときは、文字を UTF-8 のバイト列にして、1 バイトずつ %E3 のような「% + 16進数2桁」に置き換えます。これが URL エンコード(パーセントエンコーディング)です。
3つの変換方式の違い
| 方式 | 「a b/c?」の変換結果 | 使う場面 |
|---|---|---|
| encodeURIComponent | a%20b%2Fc%3F | クエリパラメータの値など、URL の一部を作るとき |
| encodeURI | a%20b/c? | URL 全体を、構造を壊さずに変換したいとき |
| フォーム形式 | a+b%2Fc%3F | HTML フォームの送信内容(application/x-www-form-urlencoded) |
迷ったら encodeURIComponent を選んでください。encodeURI は & や = を変換しないため、パラメータの値に使うと URL が壊れます。