基本多言語面 (キホンテタゴゲンメン) とは | 意味や読み方など丁寧でわかりやすい用語解説
基本多言語面 (キホンテタゴゲンメン) の読み方
日本語表記
基本多言語面 (キホンタゲンゴメン)
英語表記
Basic Multilingual Plane (ベーシックマルチリンガルプレーン)
基本多言語面 (キホンテタゴゲンメン) の意味や用語解説
「基本多言語面」とは、世界中のさまざまな文字をコンピュータ上で統一的に扱うための国際的な文字コードであるUnicodeにおいて、最も基本的な役割を果たす範囲を指す言葉だ。略称としてBMP(Basic Multilingual Plane)と呼ばれることが多い。システムエンジニアを目指す上で、文字の扱いは非常に重要であり、この概念を理解することは基礎となる。 Unicodeは、地球上のあらゆる文字、記号、絵文字などを一意の数字(コードポイントと呼ぶ)で識別し、コンピュータ上で正しく表現・処理できるようにするために考案された。かつては、国や地域ごとに異なる文字コードが乱立し、異なる文字コードのファイルを扱うと文字化けが発生するなどの問題が頻発した。この問題を解決するために、すべての文字を一つにまとめるという壮大な目標を掲げたのがUnicodeなのだ。 このUnicodeは、広大な文字空間を「面(Plane)」と呼ばれる複数の領域に分けて管理している。それぞれの面は、0x0000から0xFFFFまでの65,536個のコードポイントを持つことができる。この「面」の中でも特に重要で、日常的に使用する文字のほとんどが含まれているのが「基本多言語面」、つまり「面0」にあたる部分だ。 詳細 基本多言語面(BMP)は、Unicodeが定義する17の面のうち、「面0」に割り当てられている領域で、コードポイントで言えば0x0000から0xFFFFの範囲に該当する。この範囲には、英語で使用されるラテン文字、ギリシャ文字、キリル文字、アラビア文字、ヘブライ文字といった世界中の主要な文字体系のほか、インド系の文字、中国語の一部(CJK統合漢字)、日本語のひらがな・カタカナ・漢字の一部、ハングル、そして一般的な句読点、数学記号、通貨記号、制御文字などが網羅されている。 なぜこれが「基本」と呼ばれるのかというと、Unicodeが初めて策定された当初、多くのコンピュータシステムが文字を表現するために16ビット(2バイト)を使用することを想定していたためだ。16ビットで表現できる数値の範囲は0から65,535まで、つまりちょうど0x0000から0xFFFFの範囲に収まる。そのため、初期のUnicodeの設計では、この16ビットの範囲内に世界の主要な文字を収めることが目標とされた。この目標を達成したのが基本多言語面であり、今日でも多くのシステムやソフトウェアが、このBMPの範囲内の文字を効率的に処理するように設計されている。例えば、UTF-16という文字エンコーディング方式は、BMP内の文字を2バイトで表現するため、この領域との親和性が高い。 しかし、世界の文字の数は膨大であり、BMPにすべての文字を収めることはできなかった。特に、非常に多くの漢字を持つ中国語、日本語、韓国語の文字(CJK統合漢字のうち、使用頻度が低いものや歴史的な文字)、古代文字、特殊な記号、そして近年普及が著しい絵文字などは、BMPの範囲だけでは表現しきれない。そこで、UnicodeではBMP以外の「補助面(Supplementary Planes)」が定義された。例えば、「補助多言語面(Supplementary Multilingual Plane, SMP)」には絵文字や古代文字などが、「補助漢字面(Supplementary Ideographic Plane, SIP)」には追加のCJK統合漢字などが収容されている。 システム開発において、基本多言語面内の文字は特別な考慮なしに扱えることが多い。多くのプログラミング言語の文字列型やライブラリは、BMP内の文字を問題なく処理できるように設計されている。しかし、補助面にある文字を扱う場合には注意が必要となる。例えば、UTF-16エンコーディングでは、BMP外の文字は「サロゲートペア」と呼ばれる特別な2つの16ビットコードポイントの組み合わせで表現される。これを適切に扱わないと、文字の長さの計算が誤ったり、文字化けが発生したりする可能性があるのだ。UTF-8エンコーディングでは、BMP内の文字は1〜3バイトで表現されるが、BMP外の文字は4バイトで表現される。 このように、基本多言語面は、コンピュータが文字を扱う上での最も基盤となる領域であり、ほとんどの日常的なテキスト処理においてその文字が使われている。システムエンジニアとして文字コードを理解する際、まずこのBMPがどのような文字をカバーし、どのように扱われるかを把握することは、異なる言語のデータを扱うシステムや、国際化対応のアプリケーションを開発する上で不可欠な知識となる。そして、現代においては、絵文字などの利用が広がる中で、BMP以外の補助面への対応も適切に行える能力が求められるようになっている。