文字列を URL エンコードする方法
パーセントエンコーディングでは、URL で安全に使えない文字を、その UTF-8 バイトごとに % と 16 進数の値に置き換えます。encodeURIComponent() を使う「コンポーネント」モードは、クエリの値 1 つやパスのセグメント 1 つに適しています。
計算例
| 文字 | UTF-8 バイト | コンポーネント |
|---|---|---|
| ␠ | %20 | %20 |
| & | %26 | %26 |
| = | %3D | %3D |
| / | %2F | %2F |
| ? | %3F | %3F |
| é | %C3 %A9 | %C3%A9 |
| 😀 | %F0 %9F %98 %80 | %F0%9F%98%80 |
「コンポーネント」モードでは、フレーズ全体が 1 つの安全な値にエンコードされます。
- 入力
- rock & roll/size=XL? café 😀
- 結果 ·
encodeURIComponent() - rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80
「完全な URL」モードは & = / ? をそのまま残すため、URL 全体に対してのみ使用してください。
- 入力
- rock & roll/size=XL? café 😀
- 結果 ·
encodeURI() - rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80
ツールの処理方法
- 英字 A–Z と a–z、数字 0–9、および - _ . ! ~ * ' ( ) は変更されません。
- それ以外の文字は UTF-8 バイトに変換され、各バイトが % と大文字の 16 進数 2 桁で表されます。é は 2 バイト、ほとんどの絵文字は 4 バイトです。
- 「コンポーネント」モードは予約文字 : / ? # [ ] @ & = + $ , ; もエンコードするため、URL の構造が変わることはありません。