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年の改訂で廃止された。.mw-parser-output .sidebar{width:auto;float:right;clear:right;margin:0.5em 0 1em 1em;background:#f8f9fa;border:1px solid #aaa;padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:75%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:720px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}
Unicode
文字符号化スキーム
UTF-7
UTF-8
CESU-8
UTF-16
UTF-32
UTF-EBCDIC
SCSU
Punycode (IDN/IDNA)
GB 18030
その他
UCS
この規格は制定の一歩手前の段階までは、現在の姿とはかなり異なる仕様だった。4オクテットの符号であり、各オクテットをそれぞれ群、面、区、点とする。各面には従来のコントロール領域を避けた0x20 - 0x7Fと0xA0 - 0xFFの範囲に文字を割り当てる。その範囲にISO/IEC 2022に従った構造の各国コード(ISO/IEC 8859やJIS X 0208、GB 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/01ISO/IEC 10646-1: 1993Universal Multiple-Octet Coded Character Set (UCS) -- Part 1: Architecture and basic Multilingual Plane
1996/03/01ISO/IEC 10646-1: 1993/Cor.1TECHNICAL CORRIGENDUM 1 to ISO/IEC 10646-1:1993
1996/10/15ISO/IEC 10646-1:1993/Amd.1Transformation Format for 16 planes of group 00 (UTF-16)
1996/10/15ISO/IEC 10646-1:1993/Amd.2UCS Transformation Format 8 (UTF-8)
1996/10/15ISO/IEC 10646-1:1993/Amd.3Code positions for control characters
1996/10/15ISO/IEC 10646-1:1993/Amd.4Removal of annex G (UTF-1)
1997/11/15ISO/IEC 10646-1:1993/Amd.6Tibetan
1997/11/15ISO/IEC 10646-1:1993/Amd.733 additional characters
1997/12/15ISO/IEC 10646-1:1993/Amd.8New annex on CJK Ideographs to ISO/IEC 10646-1:1993
1997/12/15ISO/IEC 10646-1:1993/Amd.9Identifiers for Characters
1998/05/15ISO/IEC 10646-1:1993/Amd.5Hangul syllables
1998/07/15ISO/IEC 10646-1:1993/Cor.2TECHNICAL CORRIGENDUM 2 to ISO/IEC 10646-1:1993
1998/07/15ISO/IEC 10646-1:1993/Amd.11Unified Canadian Aboriginal Syllabics
1998/09/01ISO/IEC 10646-1:1993/Amd.12Cherokee
1998/10/01ISO/IEC 10646-1:1993/Amd.10Ethiopic script
1998/10/15ISO/IEC 10646-1:1993/Amd.13CJK unified ideographs
1998/11/01ISO/IEC 10646-1:1993/Amd.16Braille Patterns
1998/11/01ISO/IEC 10646-1:1993/Amd.19Runic
1998/11/01ISO/IEC 10646-1:1993/Amd.20Ogham
1999/05/15ISO/IEC 10646-1:1993/Amd.23Bopomofo and various other characters
1999/06/01ISO/IEC 10646-1:1993/Amd.21Sinhala
1999/07/15ISO/IEC 10646-1:1993/Amd.17CJK Unified Ideograph Extension
1999/07/15ISO/IEC 10646-1:1993/Amd.18Symbols and Others
1999ISO/IEC 10646-1:1993/Cor.3TECHNICAL CORRIGENDUM 3 to ISO/IEC 10646-1:1993
1999ISO/IEC 10646-1:1993/Amd.14Yi syllables and Yi radicals
1999ISO/IEC 10646-1:1993/Amd.22Keyboard symbols
1999ISO/IEC 10646-1:1993/Amd.24Thaana Script
1999ISO/IEC 10646-1:1993/Amd.25Khmer Script
1999ISO/IEC 10646-1:1993/Amd.26Burmese Script
1999ISO/IEC 10646-1:1993/Amd.27Syriac Script
1999ISO/IEC 10646-1:1993/Amd.29Mongolian
1999ISO/IEC 10646-1:1993/Amd.30Additional Latin and other characters
2000ISO/IEC 10646-1:1993/Amd.15Radicals and Numerals
2000ISO/IEC 10646-1:1993/Amd.28Ideographic Description Sequences
2000ISO/IEC 10646-1:1993/Amd.31Tibetan Extension
2000/09/15ISO/IEC 10646-1:2000UCS -- Part 1: Architecture and basic Multilingual Plane