ISO/IEC 10646

ISO/IEC 10646 (UCS)の概要



ISO/IEC 10646、別名Universal Coded Character Set (UCS)は、世界中の文字を統一的に表現するための国際標準規格です。Unicodeと非常に高い互換性を持ち、事実上同一とみなせる部分も多いですが、制定に至る過程には複雑な歴史があります。日本の対応規格はJIS X 0221です。

UCSは、文字の符号化、[文字集合]]、符号位置などを定義しています。Unicodeと同様に、文字空間は0から10FFFF16までの範囲で定義され、UTF-8UTF-16UTF-32といった文字符号化方式Unicodeと同一です。面、区、点という階層構造で文字が整理されており、[[基本多言語面]を含む17面で文字が定義されています。以前は「群」という分類もありましたが、2011年の改訂で廃止されています。

制定の経緯



ISO/IEC 10646は、当初、4オクテット符号を用い、各オクテットを群、面、区、点に対応させる設計でした。既存の各国コードとの互換性を重視した設計でしたが、Unicodeの登場により、両規格の統合作業が行われることになります。

[Unicode]]は、既存コードとの互換性を重視するISO/IEC 10646とは異なり、新しいコード体系を採用していました。このため、統合後のISO/IEC 10646は、基本多言語面]に[[Unicodeをほぼそのまま取り込み、他の領域は未使用とする、Unicodeを基にした構造となりました。 この統合により、ISO/IEC 10646は当初の設計とは大きく異なるものになりました。

この経緯から、既存規格とのコード変換において、特に記号においては、対応付けの曖昧さが残る問題点があります。結果として、製品間でのコード変換の差異による文字化けという問題は、いまだに完全には解決されていません。ただし、漢字については、元となった各国規格の符号位置が明示されているため、変換における差異は生じていません。

文字符号化方式



ISO/IEC 10646では、UnicodeのUTFと同様に、UCS Transformation Format (UTF) という文字符号化方式が用いられています。

UTF-8: UnicodeUTF-8と同一です。可変長で、英語圏の文字は1バイト、日本語などの文字は複数バイトで符号化されます。効率的にデータサイズを抑えることが可能です。
[UTF-16]]: UnicodeUTF-16と同一です。[[基本多言語面]の文字は2バイトで、BMP外の文字は4バイトで符号化されます。
UTF-32: UnicodeUTF-32と同一です。全ての文字を4バイトで符号化します。データサイズは大きくなりますが、文字へのアクセス速度が高速です。
UCS-2: 2バイト固定長でBMPの文字のみを扱える方式でしたが、UTF-16に取って代わられ、現在は廃止予定となっています。
* UTF-1: 8ビットコードでしたが、UTF-8に取って代わられ、ほとんど使用されていません。

実装レベル



以前は実装レベル(Level 1~3)が定義されていましたが、2011年の改訂でLevel 3のみが扱われるようになりました。Level 3は全ての合成列を扱うことができます。UnicodeもLevel 3の実装です。

まとめ



ISO/IEC 10646は、Unicodeとほぼ同一の文字コード規格ですが、制定過程における歴史的経緯により、既存規格との互換性に関する課題を抱えています。Unicodeとの統合は、文字コードの統一という点で大きな進歩をもたらしましたが、同時に、コード変換における複雑さも引き継いでいます。現在も、文字化け問題の完全な解決に向けた努力が続けられています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。