忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【ソフトウェア開発技術】URLで日本語や特殊記号を扱う!「パーセントエンコーディング」|情報処理問題1000本ノック

ITパスポート、基本情報技術者試験、応用情報技術者試験のWeb技術・HTTPプロトコル分野で頻出の必須テーマ。「パーセントエンコーディング(URLエンコーディング)」の仕組みと対象文字を攻略しましょう。

1. 【 問題 】:テクノロジ系(Web技術・URI仕様)

【 問題 】 Webで利用されるURI(URL)の仕様に関する記述です。URIの中で直接使用できない日本語などのマルチバイト文字や、制御文字、特定の記号などを送信する際に、文字コード(UTF-8等)の各バイト値を「%XX」(XXは16進数)という形式の文字列に変換して表記するエンコード方式は、次のうちどれか。

(ア)Base64エンコーディング
(イ)パーセントエンコーディング(URLエンコーディング)
(ウ)Punycode(ピニーコード)
(エ)HTMLエンティティ(実体参照)

2. 正解:

正解:(イ)パーセントエンコーディング(URLエンコーディング)

3. 解説:「『% + 16進数2桁』で安全なアスキー文字に置き換える!」

URI規格(RFC 3986)で直接使える文字は、半角英数字と一部の記号(`-`, `_`, `.`, `~` など)に限られています。
そのため、日本語やスペースなどの使えない文字を送信する際は、文字コードの各バイトを `%16進数`(例: スペースは `%20`、日本語の「あ」はUTF-8で `%E3%81%82`)という安全な形式にエスケープ(変換)します。

【主なWebエンコード技術の比較一覧】 ← 超頻出ポイント!

エンコード方式変換の形式・特徴主な用途・利用場所
(イ)パーセント
エンコーディング
「%XX」(XXは16進数)形式に変換。
(例:スペース → `%20`)
URI(URL)のパスやクエリ文字列(GETパラメータ)での非ASCII文字・記号の指定。
(ア)Base64 画像やバイナリデータを英数64文字(`A-Z, a-z, 0-9, +, /`)に変換。 電子メール(MIME)での画像添付や、Data URIによる埋め込み。
(ウ)Punycode 日本語ドメイン等を「`xn--`」から始まるASCII文字列に変換。 国際化ドメイン名(IDN)のDNS解決。
(エ)HTMLエンティティ `<` を `&lt;`、`>` を `&gt;` などに変換。 XSS(クロスサイトスクリプティング)対策・HTML本文のエスケープ。

1. 理解のコツ:
・Webで検索した際、ブラウザのアドレス欄にある「https://example.com/search?q=%E6%83%85%E5%A0%B1」といった長い `%` だらけの文字列。あれこそがパーセントエンコーディングされた日本語テキストです。

2. 試験対策の視点:
・問題文に「URI/URLで利用」「日本語や記号」「%XX」「16進数2桁」と出たら、迷わずパーセントエンコーディング(URLエンコーディング)を選択しましょう!
・「電子メールに画像を添付(Base64)」や「日本語ドメイン名(Punycode)」との用途の違いもセットでよく問われます。


4. まとめ

URI内で利用できない日本語や特殊文字を「%XX」(16進数)の形式に変換して安全に送信する技術。これがパーセントエンコーディングです。Base64やPunycodeなど他の変換方式との用途の違いも含めて完璧に整理しておきましょう!


PR