ホームページ > インターネット > UTF-8
2001年2月8日更新

UTF-8

iCalendar で知識が必要になったので、調べたことのメモ。

概要

UCS Transformation Formats、ISO/IEC 10646 (Unicode) に基づいた文字エンコーディングの一つ。1オクテット8ビットで記述され、可変長の文字コードを持つ。UCS-4 までの文字を記述できる。

同系統のエンコーディングとして、他に、メール用に1オクテット7ビットのUTF-7、1オクテット16ビットの UTF-16、策定中の UTF-32 がある。

Windows などの Unicode で現在カバーしている文字は UCS-2 (U+0000-U+FFFF) レベルなので、UTF-8 で間に合う。

英語のような ASCII (0x00〜0x7F) 主体の言語圏にとっては、Unicode (UCS-2,4) に比べると今までの ASCII とほとんど同じ感覚で扱え、メモリ容量も節約できる。日本語のように変換必須の文字にとっては、またひとつ、面倒臭い変換処理が増えたことになる。メモリ上では、UCS-2 の一文字2バイトに対して UTF-8 では3バイトに増える場合が多いと思われる。

仕様書

仕様

RFC や Unicode 仕様書で説明されている変換の対応関係を、自分なりにのみこめるように次図にまとめなおしてみた。

UTF-8 Byte Sequences
UCS UTF-8
  Code Points Scalar Value 1st Byte 2nd Byte 3rd Byte 4th Byte 5th Byte 6th Byte
UCS-2 U+0000..U+007F 0000 0000 0yyy xxxx 00..7F
0yyyxxxx
         
U+0080..U+07FF 0000 0zzz yyyy xxxx C2..DF
110zzzyy
80..BF
10yyxxxx
       
U+0800..U+0FFF 0000 1zzz yyyy xxxx E0
11100000
A0..BF
101zzzyy
80..BF
10yyxxxx
     
U+1000..0xD7FF, 0xE000..U+FFFF * uuuu zzzz yyyy xxxx E1..EF
1110uuuu
80..BF
10zzzzyy
80..BF
10yyxxxx
     
UCS-4 U+10000..U+3FFFF 00vv uuuu zzzz yyyy xxxx F0
11110000
90..BF
10vvuuuu
80..BF
10zzzzyy
80..BF
10yyxxxx
   
U+40000..U+FFFFF vvvv uuuu zzzz yyyy xxxx F1..F3
111100vv
80..BF
10vvuuuu
80..BF
10zzzzyy
80..BF
10yyxxxx
   
U+100000..U+10FFFF 0001 0000 uuuu zzzz yyyy xxxx F4
11110100
80..8F
1000uuuu
80..BF
10zzzzyy
80..BF
10yyxxxx
   
U+110000..U+1FFFFF 0001 vvvv uuuu zzzz yyyy xxxx F5..F7
111101vv
80..BF?
10vvuuuu
80..BF
10zzzzyy
80..BF
10yyxxxx
   
U+200000..U+3FFFFFF 00ss wwww vvvv uuuu zzzz yyyy xxxx F8..FB
111110ss
80..BF?
10wwwwvv
80..BF
10vvuuuu
80..BF
10zzzzyy
80..BF
10yyxxxx
 
U+4000000..U+7FFFFFFF 0ttt ssss wwww vvvv uuuu zzzz yyyy xxxx FC..FD
1111110t
80..BF?
10ttssss
80..BF
10wwwwvv
80..BF
10vvuuuu
80..BF
10zzzzyy
80..BF
10yyxxxx
* U+D800..U+DC00: Surrogate Code Point.

関連リソース

RFCs

Unicode.org

その他


Copyright (c) 2001 NOMURA Mahito <CI5M-NMR@asahi-net.or.jp>
2001年1月作成