世界中の文字を32ビット長(実データ長は31ビット)の符号空間で表現するための国際規格。
正式には、Information technology - Universal Multiple-Octet Coded Character Set (UCS) (国際符号化文字集合UCS)という。
最初に作られた16ビット範囲に収められるPart1(ISO/IEC 10646-1)と、それを超える範囲を規定するPart2(ISO/IEC 10646-2)があり、後に両者は統合され(2003(平成15)年)、現在のISO/IEC 10646となった。
ISO/IEC 10646と、関連する事項について時系列で並べる。
1991(平成3)年に投票されたDIS 10646は、否決された。これは、同年に登場したUnicode 1.0の影響であり、似たような規格が乱立することを避けるためだった。
DIS 10646というのは、元々のISO/IEC 10646の思想に基づくものともいえる。
DIS 10646は4オクテットの符号系で、8ビットごとの上位から群、面、区、点と区切ったものである。各国の現役のコードは、そのまま(統合などせずに)収容され、従来のものとの互換性を最大限に配慮(?)しているのが特徴だった。
これは、現在のTRONコードと、殆ど同じ思想である。
その一方、UnicodeはASCIIおよびISO/IEC 8859の拡張という形を取った2オクテット固定長の符号系である。ASCIIとISO/IEC 8859-1はそのまま、それ以降は全て新規割り当てで、漢字文字は(2オクテットに収めるために)統合する、というものであった。
両者は、根本から全く思想の異なるものだったのである。しかしDIS 10646はUnicodeより出遅れたため、完敗を喫することになった。
こうしてUnicode 1.0の後に登場したDIS 10646第二版は、群、面、区、点という概念自体はそのままだが、その内容は0群0面にUnicodeをそのまま飲み込みこれを基本多言語面(BMP)とする、他の群、面は未使用で予約、という、ものであった。
第二版と名は付いていたが、実質これはUnicode 1.0そのままであった。
こうして、第二版は無事に国際投票で可決され、ISO/IEC 10646-1となったのである。
32ビットのうち、上位の8ビットが群(group)、次の8ビットが面(plane)、次の8ビットが区(row)、下位の8ビットが点(cell)と表わされ、この8ビットずつのかたまりをオクテット(octet)と呼ぶ。
但し、実際には32ビット中の31ビットのみを利用し、最上位の1ビットは利用しない。つまり群のみ7ビットで表現される。
群・面は直訳だが、区・点という訳語は直訳ではない。これは、従来のJIS X 0208などと用語を合わせた結果であると考えられる。
基本的なISO/IEC 10646とUnicodeの関係は、前者が後者を含むということである。
但しISO仕様はUnicodeの仕様を完全に含むわけではなく、例えばユーザ定義サロゲート(Plane 15,16)、つまり外字領域はISOでは認めない方針である。
現時点において、Unicode領域外については文字の割り当ては存在しないが、理論上は番号が衝突しない領域を別に定義することも可能である。