マルチバイト文字
マルチバイト文字の符号化方式はロケールに依存するが、ほとんどの場合は ASCII あるいは ISO 646 をベースにしたものとなり、日本語ロケールであれば一般的に Shift_JIS や EUC-JP になる。UTF-8 が用いられる場合もある。
ワイド文字は当初、文字集合におけるすべての文字を等しいサイズのデータで一様に処理できるようにすることを想定していた。しかし、Unicodeにおいてサロゲートペア、結合文字、異体字セレクタといった拡張概念が採用されたことにより、UTF-16やUTF-32といった符号化方式のデータをワイド文字に格納する場合、たとえワイド文字が16ビットあるいは32ビットのサイズを持っていたとしても、1つのワイド文字だけでは表現できないUnicode文字も現れるようになった。文字境界の判定や文字数のカウントなど、プログラム上での扱いはマルチバイト文字と同様に注意を要する。
C言語(C95以降)では、マルチバイト文字(列)の操作のために以下のような関数が規定されている。ただし、特に日本語のような2バイト文字集合を含むロケールでは、実装が不十分で実用に耐えない場合も多い。
mblen
mbtowc
wctomb
mbstowcs
wcstombs
Microsoft Windowsでは、ワイド文字が2バイト(16ビット)として定義されており、符号化方式にUTF-16を利用する。
ISO 2022の体系を前提とした図形文字集合において、1文字が1バイトの文字集合(英: single-byte character set、94文字集合または96文字集合)に対して、1文字が2バイト以上の文字集合を、マルチバイト文字集合(英: multibyte character set)という。94×94文字集合(2バイト)、96×96文字集合(2バイト)、94×94×94文字集合(3バイト)などがこれに該当するが、実際には94×94文字集合以外はまれである。
特に、1文字が2バイトの文字集合を2バイト文字集合(英: double-byte character set)といい、以下のようなものがある。
GB 2312
JIS X 0208 (JIS C 6226)
JIS X 0212
JIS X 0213
KS X 1001 (KS C 5601)
KPS 9566
CNS 11643
なお、2バイト文字集合の文字のことを2バイト文字と呼ぶことがある。しかし、1バイト文字集合の文字であっても、EUC-JPにおけるJIS X 0201カタカナなどのように、符号化方式によっては一見1文字あたり2バイトであるかのような符号化をされることがある。また近年では、Unicode で処理することも多い。そのため、文字集合でなく個々の文字を指して1バイト文字・2バイト文字と表現することは、混乱を招くことがある。