1 バイト文字セットとマルチバイト文字セット
ASCII 文字セットでは、0x00 から 0x7F までの範囲の文字を定義しています。 0x00の範囲内の文字を定義する他の多くの文字セット (主にヨーロッパ文字) があります。0x7F ASCII 文字セットと同じであり、0x80から拡張文字セットを定義0xFF。 8 ビットの 1 バイト文字セット (SBCS) は、多くのヨーロッパ言語の ASCII 文字セットと文字セットを表すには十分です。 ただし、日本語の漢字など、ヨーロッパ以外の文字セットでは、1 バイトのコード体系ですべての文字を表現しきれないため、マルチバイト文字セット (MBCS) エンコードが必要になります。
Note
多くの Microsoft ランタイム ライブラリ SBCS ルーチンでは、マルチバイト バイト、文字、および文字列が必要に応じて処理されます。 多くのマルチバイト文字セットでは、ASCII 文字セットをサブセットとして定義しています。 多くのマルチバイト文字セットでは、0x00 から 0x7F の範囲内の各文字が、ASCII 文字セットで同じ値を持つ文字と一致します。 たとえば、ASCII 文字列でも MBCS 文字列でも、1 バイトの null 文字 (\0) の値は 0x00 で、終端の null 文字を意味します。
マルチバイト文字セットは、1 バイト文字と 2 バイト文字の両方で構成できます。 マルチバイト文字列には、1 バイト文字と 2 バイト文字が混在することがあります。 2 バイト文字には、先行バイトと後続バイトがあります。 特殊なマルチバイト文字セットでは、先行バイトが後続バイトと同じ範囲の値を持っている場合があります。 先頭バイトと後続バイトの範囲が重複する場合は、コンテキストを確認し、指定したバイトが先頭バイトと後続バイトのどちらであるかを判断する必要があります。