Office XP リソース キット / 国際環境での導入計画 / 国際環境でのメンテナンス

Unicode サポートと多国語ドキュメント

多国語の環境でドキュメントを共有することは、関係する言語の Windows のコード ページが複数になると、難しくなる場合があります。しかし、文字エンコードの標準規格である Unicode® を使えば、その問題の多くは解決できます。

*

Unicode を使用しないと、一般にシステムの環境はコード ページに基づくものとなります。この場合、スクリプト(文字体系) ごとに独自の文字テーブルがあります。あるオペレーティング システムのコード ページに基づくドキュメントを、別のコード ページを使用するオペレーティング システムとの間で単純にやり取りできることはほとんどありません。ドキュメント中で複数のスクリプト文字の混在するテキストを使用できない場合もあります。

たとえば、英語版の Microsoft Windows 98 オペレーティング システムで Latin コード ページを使用しているユーザーが、日本語版の Windows 98 で作成された書式なしテキスト ファイルを開くと、日本語コード ページのコード ポイントが予期しない文字や欧米のスクリプトには存在しない文字として表示され、テキストは判読できなくなります。

Unicode が提供する世界的な文字セットを使えば、この問題は解決できます。Unicode は、Office XP のすべてのアプリケーションで使用できます。

スクリプトとコード ページ

多国語ドキュメントには、スクリプトの異なるさまざまな言語のテキストを含めることができます。1 つのスクリプトで、多くの言語を表記できます。

たとえば、Latin または Roman スクリプトには、英語のアルファベットの 26 文字 (大文字と小文字) のための文字形状 (グリフ) があります。さらに、その他の西ヨーロッパ言語での音声を表すアクセント付き文字 (拡張文字) もあります。

ヨーロッパ言語の大部分、およびその他のいくつかの言語については、Latin スクリプトのグリフによってすべての文字を表記できます。しかし、ギリシャ語やロシア語など、その他のヨーロッパ言語には、Latin スクリプトのグリフにはない文字が含まれています。そのような言語では、それぞれ独自のスクリプトが使用されます。

アジアの一部の言語では、漢字に基づく表意文字が使用されます。別の言語、たとえばタイ語やアラビア語で使用されるスクリプトでは、1 つのグリフが複数の小さなグリフで構成されていたり、隣接する文字に応じてグリフの形状が変化したりすることがあります。ここでは、そのようなスクリプトをコンプレックス スクリプトと呼ぶことにします。

書式なしテキストの保存では、1 文字について 1 バイトを使用する方法が一般的です。各バイトの値は、文字テーブル内の数値インデックス (コード ポイント) です。コード ポイントは、テキスト ドキュメントを作成したコンピュータの既定コード ページの 1 文字に対応します。たとえば、バイト値が 10 進数 65 (10 進値で 65 のコード ポイント) であれば、西ヨーロッパ言語のコード ページを使用するコンピュータで、大文字の 「A」 を表すことになります。

コード ページとは、文字をまとめて表にしたものです。1 バイトの各コード ページには、最大で 256 のバイト値が含まれます。この場合、コード ページの中で 1 文字が 1 バイトで表現されるため、1 つのコード ページの文字数は最大 256 です。

256 文字という制限があるため、1 つのコード ページですべての言語に対応することはできません。あらゆる言語で使用される文字を合わせると、文字数は 256 をはるかに超えてしまいます。したがって、スクリプトごとに別のコード  ページが使用されます。たとえば、ギリシャ語用に 1 つのコード ページ、キリル言語用に 1 つのコード ページがあります。

さらに、アジアの言語では、5,000 を超える漢字などが使用されるため、1 バイトのコード ページには収まりません。そのような言語をサポートするために、2 バイト コード ページが開発されました。

コード ページ システムの欠点の 1 つは、特定のコード ポイントで表現される文字が、入力時に使用された特定のコード ページに依存することです。コード ポイントがどのコード ページのものかわからなければ、コード ポイントの解釈方法を特定できません。別々のコンピュータを使用する複数のユーザーがテキスト ドキュメントを共有する場合、この点が問題となることがあります。

たとえば、元のコード ページがわからない場合、コード ポイント 230 がギリシャ語の小文字の zeta ()、キリル言語の zhe ()、あるいは西ヨーロッパ言語の二重母音記号()のどれであるかを特定できません。これらの 3 文字のコード ポイントはすべて同じ (230) ですが、基になるコード ページが違います (順に 1253 、1251 、1252 )。これらの言語の間でドキュメントを交換すると、このように違った文字が表示されてしまいます。

Unicode :世界的な文字セット

Unicode は、既知のすべてのスクリプトを収めることのできる、世界的な文字セットを作成することを目的として開発されました。Unicode では、どの文字に対しても 2 バイトからなる固有のエンコードが割り振られます。そのため、今までのコード ページとは異なり、すべての文字に固有のコードポイントが対応することになります。たとえば、Unicode で小文字の zeta ()のコード ポイントは 16 進数 03B6 、小文字の zhe ()は 0436 、二重母音()は 00E6 となっています。

Unicode 2.0 では、約 40,000 文字のコード ポイントが定義されています。Unicode 2.1 および Unicode 3.0 では、さらに定義が追加されています。Unicode には拡張のためのメカニズムが用意されており、100 万個を超える文字が定義可能です。これは、既知のすべてのスクリプトを扱っても余りある文字数です。

現在のところ、Windows オペレーティング システムには、コード ページと Unicode の 2 種類のテキスト格納システムが共存しています。しかし、コード ページ ベースのシステムは、 Unicode ベースのシステムに移行しつつあります。たとえば、Microsoft Windows NT 4.0 、Microsoft Windows 2000 、Office 97 以降、Microsoft Internet Explorer 4.0 以降、および Microsoft SQL Server 7.0 以降では、すべて Unicode がサポートされています。


**
**