1 バイト文字セットとマルチバイト文字セット

更新 : 2007 年 11 月

ASCII 文字セットは 0x00 ~ 0x7F の範囲の文字を定義しています。その他にも数多くの文字セットがあり、主にヨーロッパでは、0x00 ~ 0x7F の範囲の文字は ASCII 文字セットと同一に定義され、さらに 0x80 ~ 0xFF の拡張文字セットが定義されています。多くのヨーロッパ系言語の文字セットと ASCII 文字セットを表現するには、8 ビットの 1 バイト文字セット (SBCS: Single-Byte-Character Set) で十分です。ただし、日本語の漢字など、ヨーロッパ以外の一部の文字セットでは、1 バイトのコード体系ですべての文字を表現しきれないため、マルチバイト文字セット (MBCS: Multibyte-Character Set) エンコーディングが必要になります。

4bb3e64h.alert_note(ja-jp,VS.90).gifメモ :

Microsoft ランタイム ライブラリにある多くの SBCS ルーチンは、必要に応じて、マルチバイトのバイト、文字、および文字列を処理します。多くのマルチバイト文字セットは ASCII 文字セットをサブセットとして定義しています。多くのマルチバイト文字セットでは、0x00 ~ 0x7F の範囲内の各文字が、ASCII 文字セットで同じ値を持つ文字と一致します。たとえば、ASCII 文字列でも MBCS 文字列でも、1 バイトの NULL 文字 (\0) の値は 0x00 で、終端の null 文字を意味します。

マルチバイト文字セットは、1 バイト文字と 2 バイト文字の両方から構成されることがあります。したがって、マルチバイト文字列にはシングルバイト文字とダブルバイト文字が混在する場合があります。2 バイトのマルチバイト文字には、先行バイトと後続バイトがあります。特殊なマルチバイト文字セットでは、先行バイトが後続バイトと同じ範囲の値を持っている場合があります。先頭バイトと後続バイトの範囲が重複する場合は、特定のコンテキストを確認し、指定したバイトが先頭バイトと後続バイトのどちらであるかを判断する必要があります。

参照

参照

国際化

カテゴリ別ランタイム ルーチン