Unicode と MBCS

MFC (Microsoft Foundation Class) ライブラリ、Visual C++ の C ランタイム ライブラリ、および Visual C++ 開発環境では、国際対応のプログラミングを支援できます。 次のようなサポート方法があります。

  • Windows での Unicode 標準のサポート。 Unicode は現在の標準です。できる限りこれを使用することをお勧めします。

    Unicode は 16 ビットの文字セットで、すべての言語に対する十分な表現能力を持っています。 すべての ASCII 文字は、拡張文字として Unicode の中に含まれます。

  • すべてのプラットフォームにおけるマルチバイト文字セット (MBCS: Multibyte Character Set) の形式のサポート。マルチバイト文字セットは、2 バイト文字セット (DBCS: Double Byte Character Set) とも呼ばれています。

    DBCS 文字は、1 バイトまたは 2 バイトで構成されます。 特定の範囲のバイトは、先頭バイトとして予約されています。 先頭バイトとは、先頭バイト自体とその後ろに続く後続バイトが 1 組の 2 バイト幅文字を構成することを明示するバイトのことです。 プログラマは、どのバイトが先行バイトになるかを把握しておく必要があります。 特殊なマルチバイト文字セットでは、先行バイトが後続バイトと同じ範囲の値を持っている場合があります。 先頭バイトと後続バイトの範囲が重複する場合は、コンテキストを確認し、指定したバイトが先頭バイトと後続バイトのどちらであるかを判断する必要があります。

  • 国際市場向けに作成されたアプリケーションの MBCS プログラミングを簡略化するツールをサポート。

    MBCS をサポートしている Windows オペレーティング システム上で Visual C++ 開発システムを実行すると、システム内の統合ソース コード エディター、デバッガー、コマンド ライン ツールなどを含むすべてが MBCS をサポートします。 詳細については、「Visual C++ における MBCS のサポート」を参照してください。

Note

このドキュメントでは、MBCS は、Unicode でサポートされていないすべてのマルチバイト文字を指します。 Visual C++ では、MBCS は常に DBCS を意味します。 2 バイトを超える文字セットはサポートされていません。

定義上、ASCII 文字セットは、すべてのマルチバイト文字セットのサブセットと考えることができます。 多くのマルチバイト文字セットでは、0x00 から 0x7F の範囲内の各文字が、ASCII 文字セットで同じ値を持つ文字と一致します。 たとえば、ASCII 文字列と MB (メガバイト)CS 文字文字列の両方で、1 バイトの NULL 文字 ('\0') は値0x00を持ち、終端の null 文字を示します。

関連項目

テキストと文字列
国際化対応について