Web技術の基礎
URLのクエリに日本語の「あ」を入れるため、この文字をUTF-8で表したバイト列(E3 81 82)を、パーセントエンコーディングで表す。結果として正しいものはどれか。
- A%E3%81%82
- B%u3042
- Cあ
答えと解説を見る
正解:A. %E3%81%82
パーセントエンコーディングでは、URLにそのまま書けない文字や、/ ? # & のように特別な意味をもつ文字をデータとして使うとき、文字をバイト列にして、1バイトずつ「%」と2桁の16進数で表します。「あ」はUTF-8で E3 81 82 の3バイトなので、%E3%81%82 になります。空白は %20 になります(フォームの送信の形式では + を使うこともあります)。JavaScriptでは encodeURIComponent 関数でこの変換ができます。
- A. 正しい。3バイトをそれぞれ %XX の形で表します。
- B. Unicodeの番号(U+3042)を使う書き方で、JavaScriptの古い escape 関数が出力する形ですが、URLの標準の書き方ではありません。
- C. HTMLの中で文字を番号で表す文字参照の書き方で、URLのパーセントエンコーディングではありません。