この規格ページの目次
16
X 0221 : 2014 (ISO/IEC 10646 : 2012)
表3は,全ての正しい形式のUTF-8のオクテット列の範囲を一覧する。表3で一覧されるパターンに一
致しない任意のUTF-8列は,誤った形式である。
表3−正しい形式のUTF-8オクテット列
符号位置 第1オクテット 第2オクテット 第3オクテット 第4オクテット
0000007F 007F
008007FF C2DF 80BF
08000FFF E0 A0BF 80BF
1000CFFF E1EC 80BF 80BF
D000D7FF ED 809F 80BF
E000FFFF EEEF 80BF 80BF
100003FFFF F0 90BF 80BF 80BF
40000FFFFF F1F3 80BF 80BF 80BF
10000010FFFF F4 808F 80BF 80BF
表3で示す形式の正しさの条件の結果として,C0C1及びF5FEのオクテット値は,UTF-8では許さ
れない。
9.2 UTF-16
UTF-16は,表4で指定されるように各UCSスカラ値を一つ二つの符号なし16ビット符号単位列に割
り当てるUCSの符号化形式である。
UTF-16符号化形式では,0000D7FF及びE000FFFFの範囲の符号位置は,単一の16ビット符号単位
で表現される。1000010FFFFの範囲にある符号位置は,二つの16ビット符号単位で表現される。この特
別な符号単位の対を,サロゲートペアという。
サロゲートペアに用いる符号単位は,単一符号単位の表現で使用する符号単位と重複しないので,
UTF-16における全ての符号位置の表現は,他の表現と重なることがない。
UTF-16は,一般的に使用される文字の大多数を含むBMPの文字の表現に最適化されている。
サロゲート符号位置は,UCSスカラ値ではないため,単独のサロゲート符号単位は,誤った形式である。
表4は,UTF-16符号化形式のビット割当てを指定する。サロゲートペアの計算において,スカラ値のオ
フセット開始の計算に当たり16進数の10000の減算が行われる(表中において“wwww = uuuuu−1”で
表現される。)。
表4−UTF-16ビット割当て
スカラ値 UTF-16
xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx
000uuuuuxxxxxxxxxxxxxxxx 110110wwwwxxxxxx 110111xxxxxxxxxx
注記 この規格の以前の版には,UCS-2という2オクテットBMP形式が含まれていた。これは,UTF-16
符号化形式のサブセットであって,UCSスカラ値をBMPの範囲に制限したものとみなすこと
ができた。UCS-2符号化形式は,廃止された。
9.3 UTF-32(UCS-4)
UTF-32(UCS-4も同じ。)は,各UCSスカラ値を単一の符号なし32ビット符号単位に割り当てるUCS
符号化形式である。用語UTF-32とUCS-4とは,この符号化形式を指定するために互いに取り替えて用い
てもよい。
――――― [JIS X 0221 pdf 21] ―――――
17
X 0221 : 2014 (ISO/IEC 10646 : 2012)
サロゲート符号位置は,UCSスカラ値ではないため,0000D8000000DFFFの範囲のUTF-32符号単位
は,誤った形式である。
10 UCSの符号化方式
符号化方式とは,それぞれのUCS符号化形式に特有のオクテット直列化の方式であって,印の仕様もそ
の一部である。印(しるし)は,対応する符号化形式における,符号位置FEFFのZERO WIDTH NO-BREAK
SPACEに対応する符号単位列とする。印が使われる場合,印は,直列化オクテット列の先頭において,文
字の表現に使われる符号化形式におけるオクテットの順序を示す。
この規格では,UTF-8,UTF-16BE,UTF-16LE,UTF-16,UTF-32BE,UTF-32LE及びUTF-32の七つの
符号化方式を規定する。
10.1 UTF-8
UTF-8符号化方式では,UTF-8の符号単位列を,その符号単位列の順序そのままに直列化する。
UTF-8で表現するとき,印は,オクテット列<EF BB BF>になる。UTF-8データ列の先頭におけるその利
用は必要でなく,また,推奨もされないが,適合性に影響しない。
10.2 UTF-16BE
UTF-16BE符号化方式は,UTF-16の符号単位列を,上位オクテットを下位オクテットより前置するオク
テットの並べ方によって直列化する(この並べ方は,ビッグエンディアンとしても知られている。)。
UTF-16BEでは,先頭のオクテット列<FE FF>は,FEFF ZERO WIDTH NO-BREAK SPACEとして解釈さ
れ,印としての意味は,もたない。
10.3 UTF-16LE
UTF-16LE符号化方式は,UTF-16の符号単位列を,下位オクテットを上位オクテットより前置するオク
テットの並べ方によって直列化する(この並べ方は,リトルエンディアンとしても知られている。)。
UTF-16LEでは,先頭のオクテット列<FF FE>は,FEFF ZERO WIDTH NO-BREAK SPACEとして解釈さ
れ,印としての意味は,もたない。
10.4 UTF-16
UTF-16符号化方式は,UTF-16の符号単位列を,上位オクテットを下位オクテットより前置又は後置す
るオクテットの並べ方によって直列化する。
UTF-16符号化方式では,<FE FF>として読み込まれる最初の印は,上位オクテットを下位オクテットよ
り前置することを示し,<FF FE> は,その逆を示す。印は,テキストデータの一部には,含まれない。
印がない場合は,UTF-16符号化方式のオクテット順序は,上位オクテットを下位オクテットより前置す
る。
10.5 UTF-32BE
UTF-32BE符号化方式は,UTF-32の符号単位列を,上位オクテットを下位オクテットより前置するオク
テットの並べ方によって直列化する(この並べ方は,ビッグエンディアンとしても知られている。)。
UTF-32BEでは,先頭のオクテット列<00 00 FE FF>は,FEFF ZERO WIDTH NO-BREAK SPACEとして
解釈され,印としての意味は,もたない。
10.6 UTF-32LE
UTF-32LE符号化方式は,UTF-32の符号単位列を,下位オクテットを上位オクテットより前置するオク
テットの並べ方によって直列化する(この並べ方は,リトルエンディアンとしても知られている。)。
UTF-32BEでは,先頭のオクテット列< FF FE 00 00>は,FEFF ZERO WIDTH NO-BREAK SPACEとして
――――― [JIS X 0221 pdf 22] ―――――
18
X 0221 : 2014 (ISO/IEC 10646 : 2012)
解釈され,印としての意味は,もたない。
10.7 UTF-32
UTF-32符号化方式は,UTF-32の符号単位列を,下位のオクテットを上位のオクテットより前置又は後
置するオクテットの並べ方によって直列化する。
印がない場合は,UTF-32符号化方式のオクテット順序は,上位のオクテットを下位のオクテットより前
置する。
11 UCSでの制御機能の使用
この符号化文字集合は,JIS X 0211又は同様な構造の制御機能の規格及びこれらから導出された規格に
従って符号化された制御機能を使用できるようにする。これらの符号化制御機能の集合又は部分集合は,
この符号化文字集合とともに使ってもよい。これらの規格は,制御機能を1オクテット以上の列で符号化
している。
JIS X 0211の制御文字をこの符号化文字集合とともに使うときは,その制御文字の符号化表現は,採用
した符号化形式の符号単位でのオクテット数(箇条9参照)と一致するように詰め込まなければならない。
この場合,最下位オクテットは,JIS X 0211で規定されたビット組合せとし,上位のオクテットは,全て
00とする。
例えば,制御文字FORM FEEDは,UTF-16符号化形式では“000C”で,UTF-32符号化形式では“0000 000C”
で表現する。
符号化制御文字の後に207Fの範囲にあるビット組合せが続く形のエスケープシーケンス,制御シー
ケンス及び制御列(JIS X 0211参照)については,それぞれのビット組合せは,00の値をもつオクテット
を詰め込まなければならない。
例えば,エスケープシーケンスの“ESC 02/00 04/00”は,UTF-8符号化形式では“1B 20 40”で,UTF-16
符号化形式では“001B 0020 0040”で,UTF-32符号化形式では“0000001B 00000020 00000040”で表現す
る。
注記1 JIS X 0211で規定される制御機能の多くのものの定義では,その制御機能が動作する要素を
識別するために,“文字”という語が現れる。そのような制御機能をこの規格の符号化文字に
適用する場合,制御機能の動作は,制御機能が作用する要素(又は文字)として応用が選択
した,この規格の要素の種類による。これらの要素としては,文字(基底文字及び/又は結
合文字)が選ばれてもよいし,適切であれば他のもの(例えば,合成列など)が選ばれても
よい。
JIS X 0202の符号拡張制御機能(指示用エスケープシーケンス,シングルシフト及びロッキングシフト)
は,この符号化文字集合と一緒に使ってはならない。
注記2 JIS X 0211が制御文字に関連付けて用いている長い名前の一覧を次に示す。
0000 NULL
0001 START OF HEADING
0002 START OF TEXT
0003 END OF TEXT
0004 END OF TRANSMISSION
0005 ENQUIRY
0006 ACKNOWLEDGE
0007 BELL
0008 BACKSPACE
0009 CHARACTER TABULATION
――――― [JIS X 0221 pdf 23] ―――――
19
X 0221 : 2014 (ISO/IEC 10646 : 2012)
000A LINE FEED
000B LINE TABULATION
000C FORM FEED
000D CARRIAGE RETURN
000E SHIFT-OUT
000F SHIFT-IN
0010 DATA LINK ESCAPE
0011 DEVICE CONTROL ONE
0012 DEVICE CONTROL TWO
0013 DEVICE CONTROL THREE
0014 DEVICE CONTROL FOUR
0015 NEGATIVE ACKNOWLEDGE
0016 SYNCHRONOUS IDLE
0017 END OF TRANSMISSION BLOCK
0018 CANCEL
0019 END OF MEDIUM
001A SUBSTITUTE
001B ESCAPE
001C INFORMATION SEPARATOR FOUR
001D INFORMATION SEPARATOR THREE
001E INFORMATION SEPARATOR TWO
001F INFORMATION SEPARATOR ONE
007F DELETE
0082 BREAK PERMITTED HERE
0083 NO BREAK HERE
0084 INDEX
0085 NEXT LINE
0086 START OF SELECTED AREA
0087 END OF SELECTED AREA
0088 CHARACTER TABULATION SET
0089 CHARACTER TABULATION WITH JUSTIFICATION
008A LINE TABULATION SET
008B PARTIAL LINE FORWARD
008C PARTIAL LINE BACKWARD
008D REVERSE LINE FEED
008E SINGLE-SHIFT TWO
008F SINGLE-SHIFT THREE
0090 DEVICE CONTROL STRING
0091 PRIVATE USE ONE
0092 PRIVATE USE TWO
0093 SET TRANSMIT STATE
0094 CANCEL CHARACTER
0095 MESSAGE WAITING
0096 START OF GUARDED AREA
0097 END OF GUARDED AREA
0098 START OF STRING
009A SINGLE CHARACTER INTRODUCER
009B CONTROL SEQUENCE INTRODUCER
009C STRING TERMINATOR
009D OPERATING SYSTEM COMMAND
009E PRIVACY MESSAGE
009F APPLICATION PROGRAM COMMAND
制御文字0084 INDEXは,JIS X 0211:1994以降削除されている。加えて,制御文字000E
及び000Fは,7ビット環境では,それぞれSHIFT-OUT及びSHIFT-INと呼ばれ,8ビット
環境では,LOCKING-SHIFT ONE及びLOCKING-SHIFT ZEROと呼ばれる。
――――― [JIS X 0221 pdf 24] ―――――
20
X 0221 : 2014 (ISO/IEC 10646 : 2012)
12 機能識別の宣言
12.1 識別の目的及び構文
この規格に適合する符号単位列は,送信者と受信者との間で交換される符号化情報の構成要素の全て又
は一部となることを意図している。送信者がこの規格(符号化形式及び符号化方式も含む。)を採用してい
るという識別情報及び 符号化空間の部分集合の識別情報は,受信者にも届くことが望ましい。これらの識
別情報を受信者に伝える経路は,この規格の適用範囲外とする。
しかし,幾つかの符号化情報の交換のための規格は,符号単位列に適用される識別情報を交換情報の一
部に含めることを,許してもよいし,要求してもよい。ここでは,部分集合をもつUCSを識別するための
符号化表現,並びにこの規格と一緒に使うJIS X 0211の制御機能のC0集合及びC1集合を識別するための
符号化表現を規定する。このような符号化表現は,識別データ要素の全て又は一部となり,関係する規格
に従って,情報交換で用いてもよい。
これらの識別情報の目的においては,直列化に当たって上位オクテットを下位オクテットより前置する
ので,UTF-8,UTF-16及びUTF-32の各符号化形式において選択できる符号化方式は,それぞれUTF-8,
UTF-16BE及びUTF-32BEだけである。
識別情報が二つ以上ある場合は,この識別の順序は,ここに規定した順序による。
注記 別の識別法を附属書Nに示す。
注記A 箇条10に規定する印も,識別法の一種である。
12.2 UCSの符号化形式の識別
JIS X 0202のエスケープシーケンスを使う場合,この規格で規定するUCSの符号化形式(箇条9参照)
の識別は,次に示す指示シーケンスによる。
ESC 02/05 02/15 04/09 UTF-8符号化形式によるUTF-8符号化方式
ESC 02/05 02/15 04/12 UTF-16符号化形式によるUTF-16BE符号化方式
ESC 02/05 02/15 04/06 UTF-32符号化形式によるUTF-32BE符号化方式
注記1 この規格の以前の版で使われていた,実装水準1及び2を識別する指示シーケンスESC 02/05
02/15 04/00,ESC 02/05 02/15 04/01,ESC 02/05 02/15 04/03,ESC 02/05 02/15 04/04,ESC 02/05
02/15 04/07,ESC 02/05 02/15 04/08,ESC 02/05 02/15 04/10及びESC 02/05 02/15 04/11は,廃
止した。残っているエスケープシーケンスは,この規格の以前の版の実装水準3に対応する
ものであるが,この実装水準が現在有効な唯一の符号単位列の内容定義に相当する。
注記2 次のエスケープシーケンスも使用してもよい。
ESC 02/05 04/07 UTF-8符号化形式によるUTF-8符号化方式
JIS X 0202の符号系への復帰に使うエスケープシーケンスは,詰め込まない(12.5参照)。
このようなエスケープシーケンスがJIS X 0202に適合した符号単位列に現れる場合,ここに示す一連の
ビット組合せのとおりでなければならない。
このようなエスケープシーケンスが,この規格に適合した符号単位列に現れる場合,箇条11の規定に従
って詰め込まなければならない。
12.3 図形文字部分集合の識別
JIS X 0211の制御シーケンスを使うときは,この規格で規定する部分集合(箇条8参照)を制御シーケ
ンスIDENTIFY UNIVERSAL CHARACTER SUBSET(IUCS,国際符号化文字部分集合識別)で,次に示す
とおりに識別しなければならない。
CSI Ps... 02/00 06/13
――――― [JIS X 0221 pdf 25] ―――――
次のページ PDF 26
JIS X 0221:2014の引用国際規格 ISO 一覧
- ISO/IEC 10646:2012(IDT)
JIS X 0221:2014の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.040 : 文字セット及び符号化
JIS X 0221:2014の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX0202:1998
- 情報技術―文字符号の構造及び拡張法
- JISX0211:1994
- 符号化文字集合用制御機能