ISO/IEC 10646

文字コードの国際標準の1つ
UCS-4から転送)

ISO/IEC 10646 (UCS; 英: Universal Coded Character Set) は、符号化文字集合文字符号化方式などを定めた、文字コードの国際標準のひとつで、業界規格のUnicodeと概ね互換である。日本の対応規格はJIS X 0221(国際符号化文字集合)。

文字空間(0 - 10FFFF16)、収録されている文字、それらの符号位置、英語でつけられた文字の名前、文字符号化方式(UTF-8, UTF-16, UTF-32)はUnicode規格と全く同じである[1][2][3][4]。ただし、文字空間は古い規格では21ビットUnicodeをベースにして文字空間を31ビットに拡張したものとされ、Unicodeの最大値であるU+10FFFFより大きなコードも使用できるという点でUnicodeと異なっていた。しかし、2006年の改訂によりUnicodeで使用できない領域には文字が「永久に定義されない」こととされ、2011年の改訂では明確に0 - 10FFFFと定義され同一となった。

(plane)、区 (row)、点 (cell) として分けられ、Unicodeと同じ第0面の基本多言語面 (BMP; 英: Basic Multilingual Plane) と追加面の第1 - 16面までの範囲で文字が定義されている。古い規格では群 (group) という分類もあったが2011年の改訂で廃止された。

制定の経緯とその影響 編集

この規格は制定の一歩手前の段階までは、現在の姿とはかなり異なる仕様だった。4オクテットの符号であり、各オクテットをそれぞれ群、面、区、点とする。各面には従来のコントロール領域を避けた0x20 - 0x7Fと0xA0 - 0xFFの範囲に文字を割り当てる。その範囲にISO/IEC 2022に従った構造の各国コードISO/IEC 8859JIS X 0208GB 2312など)を平行移動してそっくり収容するという、従来のコード系との互換性を最大限に尊重した構成をとっていた。

この案は1990年に国際標準の一歩前の段階のDIS (Draft International Standard) として作成されたが、1991年6月の投票で否決された。その理由は、同じ時期にアメリカの企業群がUnicode仕様を作成したため、同じ目的の規格が2つ作られることを避けることだった。

その後、DIS 10646とUnicodeとを一本化する作業が行われた。既存規格との整合性を重んじたDIS 10646に対して、Unicodeは各種アルファベット類は新規割り当て、漢字は日中韓を統合、符号位置はコントロール領域まで全て使って2オクテット固定という、全く異なる方針で設計されていた。結果として、「群・面・区・点」という用語は残しながら、第0群第0面を基本多言語面 (BMP) と称し、BMPにUnicodeをそっくり入れてその他の群・面は未使用という、実質2オクテットの符号となった。

結局、Unicodeに乗っ取られ第1版とは似ても似つかぬ符号になったDIS 10646第2版が、そのままInternational Standardとして制定されることとなった。1993年のことである。

このような経緯をたどり、既存規格との対応が不明確な定義になってしまったため、既存規格とのコード変換において、似たような形の多い記号のどれに対応させるのかの判断が困難となる問題が生じた。これにより、製品によってコード変換が異なる問題が常態化し、この問題に起因する文字化けは今[いつ?]に至るまで解決の目処が経っていない。ただし漢字については、元になった各国規格の符号位置が明示されているため変換の違いは生じていない。

制定された規格群 編集

※ 1999年9月以降、2000年9月までに成立したAmendmentおよびTechnical Corrigendumは、発行されずそのままISO/IEC 10646-1:2000に組み込まれた。

発行日 規格番号 名称
1993/05/01 ISO/IEC 10646-1: 1993 Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture and basic Multilingual Plane
1996/03/01 ISO/IEC 10646-1: 1993/Cor.1 TECHNICAL CORRIGENDUM 1 to ISO/IEC 10646-1:1993
1996/10/15 ISO/IEC 10646-1:1993/Amd.1 Transformation Format for 16 planes of group 00 (UTF-16)
1996/10/15 ISO/IEC 10646-1:1993/Amd.2 UCS Transformation Format 8 (UTF-8)
1996/10/15 ISO/IEC 10646-1:1993/Amd.3 Code positions for control characters
1996/10/15 ISO/IEC 10646-1:1993/Amd.4 Removal of annex G (UTF-1)
1997/11/15 ISO/IEC 10646-1:1993/Amd.6 Tibetan
1997/11/15 ISO/IEC 10646-1:1993/Amd.7 33 additional characters
1997/12/15 ISO/IEC 10646-1:1993/Amd.8 New annex on CJK Ideographs to ISO/IEC 10646-1:1993
1997/12/15 ISO/IEC 10646-1:1993/Amd.9 Identifiers for Characters
1998/05/15 ISO/IEC 10646-1:1993/Amd.5 Hangul syllables
1998/07/15 ISO/IEC 10646-1:1993/Cor.2 TECHNICAL CORRIGENDUM 2 to ISO/IEC 10646-1:1993
1998/07/15 ISO/IEC 10646-1:1993/Amd.11 Unified Canadian Aboriginal Syllabics
1998/09/01 ISO/IEC 10646-1:1993/Amd.12 Cherokee
1998/10/01 ISO/IEC 10646-1:1993/Amd.10 Ethiopic script
1998/10/15 ISO/IEC 10646-1:1993/Amd.13 CJK unified ideographs
1998/11/01 ISO/IEC 10646-1:1993/Amd.16 Braille Patterns
1998/11/01 ISO/IEC 10646-1:1993/Amd.19 Runic
1998/11/01 ISO/IEC 10646-1:1993/Amd.20 Ogham
1999/05/15 ISO/IEC 10646-1:1993/Amd.23 Bopomofo and various other characters
1999/06/01 ISO/IEC 10646-1:1993/Amd.21 Sinhala
1999/07/15 ISO/IEC 10646-1:1993/Amd.17 CJK Unified Ideograph Extension
1999/07/15 ISO/IEC 10646-1:1993/Amd.18 Symbols and Others
1999 ISO/IEC 10646-1:1993/Cor.3 TECHNICAL CORRIGENDUM 3 to ISO/IEC 10646-1:1993
1999 ISO/IEC 10646-1:1993/Amd.14 Yi syllables and Yi radicals
1999 ISO/IEC 10646-1:1993/Amd.22 Keyboard symbols
1999 ISO/IEC 10646-1:1993/Amd.24 Thaana Script
1999 ISO/IEC 10646-1:1993/Amd.25 Khmer Script
1999 ISO/IEC 10646-1:1993/Amd.26 Burmese Script
1999 ISO/IEC 10646-1:1993/Amd.27 Syriac Script
1999 ISO/IEC 10646-1:1993/Amd.29 Mongolian
1999 ISO/IEC 10646-1:1993/Amd.30 Additional Latin and other characters
2000 ISO/IEC 10646-1:1993/Amd.15 Radicals and Numerals
2000 ISO/IEC 10646-1:1993/Amd.28 Ideographic Description Sequences
2000 ISO/IEC 10646-1:1993/Amd.31 Tibetan Extension
2000/09/15 ISO/IEC 10646-1:2000 UCS -- Part 1: Architecture and basic Multilingual Plane
2001/11/01 ISO/IEC 10646-2:2001 UCS -- Part 2: Supplementary Planes
2002/07/16 ISO/IEC 10646-1:2000/Amd.1 Mathematical symbols and other characters
2003/12/15 ISO/IEC 10646:2003 Universal Multiple-Octet Coded Character Set (UCS)
2005/11/15 ISO/IEC 10646:2003/Amd.1 Glagolitic, Coptic, Georgian and other characters
2006/07/01 ISO/IEC 10646:2003/Amd.2 N'Ko, Phags-pa, Phoenician and other characters
2008/02/15 ISO/IEC 10646:2003/Amd.3 Lepcha, Ol Chiki, Saurashtra, Vai and other characters
2008/07/01 ISO/IEC 10646:2003/Amd.4 Cham, Game Tiles, and other characters
2008/12/01 ISO/IEC 10646:2003/Amd.5 Tai Tham, Tai Viet, Avestan, Egyptian Hieroglyphs, CJK Unified Ideographs Extension C, and other characters
2009/10/15 ISO/IEC 10646:2003/Amd.6 Bamum, Javanese, Lisu, Meetei Mayek, Samaritan, and other characters
2010/7/15 ISO/IEC 10646:2003/Amd.7 Mandaic, Batak, Brahmi, and other characters
2011/5/2 ISO/IEC 10646:2011 Universal Coded Character Set (UCS)
2012/05/21 ISO/IEC 10646:2012 Information technology -- Universal Coded Character Set (UCS)
2013/04/09 ISO/IEC 10646:2012/Amd 1:2013 Linear A, Palmyrene, Manichaean, Khojki, Khudawadi, Bassa Vah, Duployan, and other characters
2014/08/29 ISO/IEC 10646:2014 Information technology -- Universal Coded Character Set (UCS)
2015 ISO/IEC 10646:2014/Amd 1:2015 Cherokee supplement and other characters
2016 ISO/IEC 10646:2014/Amd 2:2016 Bhaiksuki, Marchen, Tangut and other characters
2017/12/22 ISO/IEC 10646:2017 Information technology -- Universal Coded Character Set (UCS)

文字符号化方式 編集

Unicodeの『UTF』が『Unicode Transformation Format』を意味するのに対し、ISO/IEC 10646の『UTF』は『UCS Transformation Format』を意味する。

UTF-1
初期に提案されていた、8ビットコードによる方式。ほとんど利用されることなくUTF-8にとって代わられた。
UCS-2
2オクテット固定のUCS (Universal Coded-Character Set) である。BMP(基本多言語面)以外の文字を使うことはできず、すべての文字を符号化できるUTF-16にとって代わられた。2011年の改訂ではdeprecated(廃止予定)とされた。
UTF-8
UnicodeのUTF-8と同じ[3]
UTF-16
UnicodeのUTF-16と同じ[4]
UTF-32 (UCS-4)
UnicodeのUTF-32と同じ。

実装レベル 編集

古い規格では実装レベルというものが考えられていたが2011年の改訂で廃止され、Level3の実装のみを扱う事となった。

Level 1
合成列などを扱わない
Level 2
必要な合成列を扱える
Level 3
全て扱える

Unicodeは、Level 3の実装である。

脚注 編集

  1. ^ The Unicode Standard Version 11.0” (PDF) (English). The Unicode Consortium. p. 1 (2018年6月5日). 2019年1月21日閲覧。 “The Unicode Standard is code-for-code identical with International Standard ISO/IEC 10646.”
  2. ^ The Unicode Standard Version 11.0” (PDF) (English). The Unicode Consortium. p. 88 (2018年6月5日). 2019年1月21日閲覧。 “The character names in the Unicode Standard match those of the English edition of ISO/IEC 10646.”
  3. ^ a b The Unicode Standard Version 11.0” (PDF) (English). The Unicode Consortium. p. 930 (2018年6月5日). 2019年1月21日閲覧。 “The ISO/IEC 10646 definition of UTF-8 is identical to UTF-8 as described under Definition D92 in Section 3.9, Unicode Encoding Forms.”
  4. ^ a b The Unicode Standard Version 11.0” (PDF) (English). The Unicode Consortium. p. 930 (2018年6月5日). 2019年1月21日閲覧。 “The ISO/IEC 10646 definition of UTF-16 is identical to UTF-16 as described under Definition D91 in Section 3.9, Unicode Encoding Forms.”

参考文献 編集