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