1 バイト文字セットとマルチバイト文字セットSingle-Byte and Multibyte Character Sets

ASCII 文字セットでは、0x00 から 0x7F までの範囲の文字を定義しています。The ASCII character set defines characters in the range 0x00 - 0x7F. そのほかに、ASCII 文字セットと同じ 0x00 から 0x7F までの範囲の文字に加え、0x80 から 0xFF までの拡張文字セットも定義している、主にヨーロッパ向けのさまざまな文字セットがあります。There are a number of other character sets, primarily European, that define the characters within the range 0x00 - 0x7F identically to the ASCII character set and also define an extended character set from 0x80 - 0xFF. 多くのヨーロッパ系言語の文字と ASCII 文字セットを表現するには、8 ビットの 1 バイト文字セット (SBCS: Single-Byte-Character Set) で十分です。Thus an 8-bit, single-byte-character set (SBCS) is sufficient to represent the ASCII character set as well as the character sets for many European languages. ただし、日本語の漢字など、ヨーロッパ以外の文字セットでは、1 バイトのコード体系ですべての文字を表現しきれないため、マルチバイト文字セット (MBCS) エンコーディングが必要になります。However, some non-European character sets, such as Japanese Kanji, include many more characters than can be represented in a single-byte coding scheme, and therefore require multibyte-character set (MBCS) encoding.

注意

Microsoft ランタイム ライブラリの多くの SBCS ルーチンでマルチバイト、文字、文字列が必要に応じて処理されます。Many SBCS routines in the Microsoft run-time library handle multibyte bytes, characters, and strings as appropriate. 多くのマルチバイト文字セットでは、ASCII 文字セットをサブセットとして定義しています。Many multibyte-character sets define the ASCII character set as a subset. 多くのマルチバイト文字セットでは、0x00 から 0x7F の範囲内の各文字が、ASCII 文字セットで同じ値を持つ文字と一致します。In many multibyte character sets, each character in the range 0x00 - 0x7F is identical to the character that has the same value in the ASCII character set. たとえば、ASCII 文字列でも MBCS 文字列でも、1 バイトの null 文字 (\0) の値は 0x00 で、終端の null 文字を意味します。For example, in both ASCII and MBCS character strings, the one-byte null character ('\0') has value 0x00 and indicates the terminating null character.

マルチバイト文字セットは、1 バイト文字と 2 バイト文字の両方で構成されることがあります。A multibyte character set may consist of both one-byte and two-byte characters. そのため、マルチバイト文字列には、 1 バイト文字と 2 バイト文字が混在することがあります。Thus a multibyte-character string may contain a mixture of single-byte and double-byte characters. 2 バイト文字には、先行バイトと後続バイトがあります。A two-byte multibyte character has a lead byte and a trail byte. 特殊なマルチバイト文字セットでは、先行バイトが後続バイトと同じ範囲の値を持っている場合があります。In a particular multibyte-character set, the lead bytes fall within a certain range, as do the trail bytes. 先頭バイトと後続バイトの範囲が重複する場合は、コンテキストを確認し、指定したバイトが先頭バイトと後続バイトのどちらであるかを判断する必要があります。When these ranges overlap, it may be necessary to evaluate the particular context to determine whether a given byte is functioning as a lead byte or a trail byte.

関連項目See also

国際化Internationalization
カテゴリ別ユニバーサル C ランタイム ルーチンUniversal C runtime routines by category