> percent | url | rfc3986 <
// パーセントエンコーディング – 文字を URL / URI 用の %XX 形式に変換
[RFC3986]
標準準拠
URI のパーセントエンコーディングについて RFC 3986 の仕様に準拠しています。
[UNICODE]
完全な Unicode 対応
UTF‑8 でエンコードされた Unicode 文字や絵文字を正しく処理します。
[FLEXIBLE]
柔軟なエンコードオプション
標準エンコードと、全ての文字をエンコードするモードを切り替えられます。
>> 技術情報
パーセントエンコーディングの仕組み:
パーセントエンコーディングでは、安全ではない ASCII 文字をパーセント記号 (%) と、その文字のバイト値を表す 2 桁の 16 進数に置き換えます。UTF‑8 文字は複数の %XX シーケンスとしてエンコードされます。
例:
"Hello World!" → Hello%20World%21
パーセントエンコーディングを使う場面:
- >URL / URI のエンコード
- >フォームデータの送信
- >クエリストリングのパラメータ
- >URL のパス要素
- >HTTP ヘッダーやクッキー
>> よくある質問
パーセントエンコーディングとは何ですか?
パーセントエンコーディング(URL エンコードとも呼ばれます)は、URI 内の情報をエンコードするために、安全ではない ASCII 文字を「%」と 2 桁の 16 進数に置き換える仕組みです.
どんな時にパーセントエンコーディングを使うべきですか?
URL、クエリパラメータ、フォームデータなど、特定の文字が特別な意味を持ち、エスケープする必要がある文脈でパーセントエンコーディングを使用します。
encodeURI と encodeURIComponent の違いは何ですか?
encodeURI は :/?#[]@ などの文字を保持したまま URI 全体をエンコードします。encodeURIComponent は予約されていない文字 (A‑Z, a‑z, 0‑9, -, _, ., ~) 以外をすべてエンコードします。
なぜスペースは %20 または + になるのですか?
URL ではスペースは通常 %20 としてエンコードされます。フォームデータ(application/x-www-form-urlencoded)では歴史的な理由から + で表される場合もあります。どちらも有効ですが、使われるコンテキストが異なります。