1.08.3基礎
Unicode文字を扱うUTF-8について、ASCIIとの互換性と文字ごとのバイト数を確認する。
適切な説明はどれか。
× 不正解
UTF-8はASCII範囲を同じ1バイトで表し、他のUnicode符号位置を可変長の複数バイトで表す。
詳細解説
誤りすべての文字を常に1バイトで表す
UTF-8は文字に応じて複数バイトを使う可変長符号化である。
ASCII文字は1バイトだが、日本語などは複数バイトになるため常時1バイトではない。
誤りASCII文字も互換性のない値へ置き換える
ASCII範囲は同じ1バイト値で表現する。
ASCII範囲は同じバイト値を維持することがUTF-8の重要な互換性である。
正しいASCII範囲を同じ値で表し、それ以外は複数バイトも使う
UTF-8はASCII互換の可変長Unicode符号化である。
ASCIIは同じ1バイト、それ以外は符号位置に応じた複数バイトで表す。
誤り日本語だけを対象とする固定長符号化である
UTF-8は世界各地のUnicode文字を扱う。
UTF-8は日本語専用ではなくUnicode全体を対象とし、固定長でもない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'Aあ' | od -An -tx1期待される結果
41 e3 81 82(UTF-8環境)理解のポイント
- ASCII compatible
- 可変長
- Unicodeを符号化
確認時の注意
- 確認環境: UTF-8端末 / POSIX printfとod
基礎のおさらい
バイト数と文字数
文字数とバイト数は一致しないため、文字境界を意識する処理ではUTF-8対応APIを使う。
自己同期性
先頭バイトと継続バイトのパターンが分かれ、バイト列中の文字境界を識別しやすい。
問題IDKL-102-1065
確認環境UTF-8端末 / POSIX printfとod
最終技術確認2026-08-13
誤り・権利侵害を報告