応用情報技術者 2022年 秋期 午前2 問07
問題文
XML において、XML 宣言中で符号化宣言を省略できる文字コードはどれか。
選択肢
ア:EUC-JP
イ:ISO-2022-JP
ウ:Shift-JIS
エ:UTF-16(正解)
XML における符号化宣言の省略可能な文字コード【午前2 解説】
要点まとめ
- 結論:XML宣言中で符号化宣言を省略できるのはUTF-16のみです。
- 根拠:XML仕様ではUTF-8とUTF-16がデフォルトのエンコーディングとして扱われ、特にUTF-16はバイトオーダーマーク(BOM)で判別可能なため省略可能です。
- 差がつくポイント:日本語の代表的な文字コード(EUC-JP、ISO-2022-JP、Shift-JIS)は明示的な符号化宣言が必須である点を理解しているかが重要です。
正解の理由
UTF-16はXML仕様で特別扱いされており、BOM(バイトオーダーマーク)によってエンディアンが判別可能なため、XML宣言中の符号化宣言を省略できます。これに対し、EUC-JP、ISO-2022-JP、Shift-JISはBOMがなく、文字コードの判別が困難なため、必ず符号化宣言を記述しなければなりません。したがって、正解はエ: UTF-16です。
よくある誤解
UTF-8もBOMなしでよく使われますが、UTF-8の場合は符号化宣言を省略できるのはXML仕様上の特例であり、問題文の選択肢には含まれていません。日本語の他の文字コードは必ず宣言が必要です。
解法ステップ
- XML仕様における符号化宣言の役割を理解する。
- UTF-8とUTF-16がデフォルトのエンコーディングとして特別扱いされていることを確認する。
- UTF-16はBOMによりエンディアンが判別可能であることを知る。
- 日本語の代表的文字コード(EUC-JP、ISO-2022-JP、Shift-JIS)はBOMがなく、宣言が必須であることを認識する。
- 選択肢の中からUTF-16を選ぶ。
選択肢別の誤答解説
- ア: EUC-JP
BOMがなく、文字コード判別ができないため符号化宣言は必須です。 - イ: ISO-2022-JP
7ビットのエスケープシーケンスを使うため、宣言なしでは正しく解釈できません。 - ウ: Shift-JIS
BOMがなく、文字コードの自動判別ができないため宣言が必要です。 - エ: UTF-16
BOMによりエンディアンが判別可能で、符号化宣言を省略できます。
補足コラム
XML宣言の符号化宣言は
<?xml version="1.0" encoding="UTF-8"?>のように記述します。UTF-8とUTF-16はXML仕様で特別扱いされ、UTF-8はBOMなしでも多くの環境でデフォルトとされますが、UTF-16はBOMが必須であり、これにより符号化宣言を省略可能です。日本語環境ではShift-JISやEUC-JPが使われることもありますが、XMLではこれらの文字コードを使う場合は必ずencoding属性を明示しなければなりません。
FAQ
Q: UTF-8は符号化宣言を省略しても良いのですか?
A: はい、XML仕様上UTF-8はデフォルトのエンコーディングであり、省略可能ですが、問題の選択肢にはありません。
A: はい、XML仕様上UTF-8はデフォルトのエンコーディングであり、省略可能ですが、問題の選択肢にはありません。
Q: BOMとは何ですか?
A: BOM(バイトオーダーマーク)は文字コードのエンディアン(バイト順)を示す特殊なマークで、UTF-16で特に重要です。
A: BOM(バイトオーダーマーク)は文字コードのエンディアン(バイト順)を示す特殊なマークで、UTF-16で特に重要です。
関連キーワード: XML, 符号化宣言、UTF-16, BOM, 文字コード、Shift-JIS, EUC-JP, ISO-2022-JP

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

