2バイト文字セット( DBCS ) は、すべての文字 (制御文字を含む) を 2 バイトでエンコードするか、または、付属の 1 バイト文字セット (SBCS) で表現できないすべてのグラフィック文字のみを 2 バイトでエンコードする文字エンコーディングです(通常、これらの 2 バイト文字のほとんどは漢字で構成されます)。DBCS は、多くの固有の文字や記号を含む各国語をサポートします (1 バイトで表現できる文字の最大数は256文字ですが、2 バイトでは最大65,536文字を表現できます)。このような言語の例としては、韓国語、日本語、中国語などがあります。韓国語のハングルにはそれほど多くの文字はありませんが、KS X 1001はハングルと漢字の両方をサポートし、1 文字あたり 2 バイトを使用します。
DBCSという用語は、従来、各グラフィック文字が2バイトでエンコードされる文字エンコーディングを指す。
Big-5やShift JISなどの8ビットコードでは、DBCSの文字は、最上位ビットがセットされた(つまり7ビットより大きい)先頭(最初の)バイトと、1バイト文字セット(SBCS)との組み合わせで表現されます。市販のソフトウェアとの互換性を維持するという実際的な理由から、SBCSは半角文字に、DBCSは全角文字に関連付けられています。ISO -2022-JPなどの7ビットコードでは、エスケープシーケンスまたはシフトコードを使用してSBCSとDBCSを切り替えます。
場合によっては、「DBCS」という用語の使用は、ISO 2022に準拠しない基盤構造を意味することがあります。例えば、「DBCS」は、拡張Unixコード(EUC)ではない2バイトエンコーディングを指す場合があります。
DBCSの本来の意味は、今日一部の人々が正しいと考える用法とは異なります。EUC -JP、EUC-KR、EUC-TW、GB 18030、UTF-8などの文字エンコーディングは、一部の文字に2バイト以上を使用し、他の文字には1バイトをサポートするため、これらの文字エンコーディングはマルチバイト文字セット(MBCS)または可変幅エンコーディングと呼ぶべきだと主張する人もいます。
DBCS という用語をUTF-16およびUTF-8エンコーディングを指すものとして使う人もいれば、 1 文字あたり 1 バイト以上を使用する古い ( Unicode以前の) 文字エンコーディングを指すものとして使う人もいます。Shift JIS、GB 2312、Big5 は、1 文字あたり 1 バイト以上を含むことができる文字エンコーディングの例ですが、これらの文字エンコーディングに対して DBCS という用語を使うのは、実際には可変長エンコーディング(UTF-16 と UTF-8 も同様) であるため、不適切な用語です。一部のIBMメインフレームには、マルチバイト コード ページの 2 バイト部分のみを含む真の DBCS コード ページがあります。
ソフトウェアの国際化に関して「DBCS有効化」という用語を使用する場合、曖昧な用語を使用していることになります。これは、コードページを使用した古い技術で東アジア市場向けのソフトウェアを作成したいという意味か、Unicodeを使用する予定という意味かのどちらかです。この用語は、東アジアの言語への翻訳を意味する場合もあります。通常、「Unicode有効化」とは、Unicodeを使用してソフトウェアを国際化することを意味し、「DBCS有効化」とは、東アジアのさまざまな国間で互換性のない文字エンコーディングを使用してソフトウェアを国際化することを意味します。Unicodeは、他の多くの文字エンコーディングとは異なり、東アジアの主要言語すべてをサポートしているため、Unicodeを使用するソフトウェアの有効化と保守は一般的に容易です。DBCS(非Unicode)有効化は、非常に古いオペレーティングシステムやアプリケーションがUnicodeをサポートしていない場合にのみ必要となるのが一般的です。
トリプルバイト文字セット(TBCS)とは、文字(制御文字を含む)を3バイトでエンコードする文字エンコーディング方式のことである。