107.3基礎
UnicodeとUTF-8について正しい説明を1つ選ぶ。
適切な説明はどれか。
× 不正解
Unicodeは文字へcode pointを割り当てる体系で、UTF-8はそのcode pointを可変長byte列へ符号化する方式である。
詳細解説
誤りUnicodeはLinux専用の8bit文字encodingである
UnicodeはOS専用でも固定8bit encodingでもない。
誤り。UnicodeはOSを限定しない国際的な文字体系で、固定8bitだけに収まらない。
誤りUTF-8とUnicodeは互いに無関係な文字集合である
UTF-8はUnicode code pointをbyte列へ表すencodingである。
誤り。UTF-8はUnicodeのcode pointをbyte列へmappingする代表的なencodingで、密接に関係する。
正しいUTF-8はUnicode code pointを可変長byte列で表すencodingである
UTF-8はUnicodeを1~4byteの列へ符号化する。
正しい。UTF-8はcode pointの範囲に応じて1~4byteを使う可変長encodingである。
誤りUTF-8ではすべての文字を必ず8byteで保存する
名前の8は8byte固定長を意味せず、code pointによりbyte数が異なる。
誤り。UTF-8の8はcode unitが8bitであることに由来し、全文字を8byte固定で保存する意味ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf 'Aあ' | od -An -t x1期待される結果
41 e3 81 82(UTF-8環境)理解のポイント
- Unicodeはcode point体系
- UTF-8はencoding
- 1~4byteの可変長
確認時の注意
- 確認環境: UTF-8 shell source / od
基礎のおさらい
文字とbyte
同じUnicode文字でもUTF-8、UTF-16等では異なるbyte表現になるため、文字集合とencodingを混同しない。
見た目とcode point
結合文字や正規化により、同じ見た目でもcode point列が異なる場合がある。単純なbyte比較とは別問題である。
問題IDKP-107-711
確認環境UTF-8 shell source / od
最終技術確認2026-08-13
誤り・権利侵害を報告