Двухбайтовый набор символов ( DBCS ) — это кодировка символов , в которой либо все символы (включая управляющие символы ) кодируются двумя байтами, либо просто каждый графический символ, не представляемый сопутствующим однобайтовым набором символов ( SBCS ), кодируется двумя байтами ( символы хань обычно включают большинство этих двухбайтовых символов). DBCS поддерживает национальные языки, которые содержат много уникальных символов или символов (максимальное количество символов, которое может быть представлено одним байтом, составляет 256 символов, в то время как два байта могут представлять до 65 536 символов). Примерами таких языков являются японский и китайский . Хангыль не содержит столько символов, но KS X 1001 поддерживает как Хангыль, так и Ханджа и использует два байта на символ.
Термин DBCS традиционно относится к кодировке символов, в которой каждый графический символ кодируется двумя байтами.
В 8-битном коде, таком как Big-5 или Shift JIS , символ из DBCS представлен ведущим (первым) байтом с наиболее значимым набором битов (т. е. больше семи бит) и спаривается с однобайтовым набором символов (SBCS). По практическим соображениям поддержания совместимости с немодифицированным готовым программным обеспечением SBCS ассоциируется с символами половинной ширины , а DBCS — с символами полной ширины . В 7-битном коде, таком как ISO-2022-JP , для переключения между SBCS и DBCS используются escape-последовательности или коды сдвига .
Иногда использование термина «DBCS» может подразумевать базовую структуру, которая не соответствует ISO 2022. Например, «DBCS» иногда может означать двухбайтовую кодировку, которая определенно не является расширенным кодом Unix (EUC).
Это первоначальное значение DBCS отличается от того, что некоторые считают правильным использованием сегодня. Некоторые настаивают на том, чтобы эти кодировки символов правильно называть многобайтовыми наборами символов (MBCS) или кодировками переменной ширины , поскольку такие кодировки символов, как EUC-JP , EUC-KR , EUC-TW , GB 18030 и UTF-8, используют более двух байтов для некоторых символов и поддерживают один байт для других символов.
Некоторые люди используют DBCS для обозначения кодировок UTF-16 и UTF-8 , в то время как другие используют термин DBCS для обозначения старых (до Unicode ) кодировок символов, которые используют более одного байта на символ. Shift JIS , GB 2312 и Big5 — это несколько кодировок символов, которые могут содержать более одного байта на символ, но даже использование термина DBCS для этих кодировок символов является неправильной терминологией, поскольку эти кодировки символов на самом деле являются кодировками переменной ширины (как и UTF-16 и UTF-8). Некоторые мэйнфреймы IBM имеют настоящие кодовые страницы DBCS, которые содержат только двухбайтовую часть многобайтовой кодовой страницы.
Если человек использует термин «DBCS enablement» для интернационализации программного обеспечения , он использует двусмысленную терминологию. Он либо имеет в виду, что хочет написать программное обеспечение для рынков Восточной Азии, используя старые технологии с кодовыми страницами, либо планирует использовать Unicode. Иногда этот термин также подразумевает перевод на восточноазиатский язык. Обычно «Unicode enablement» означает интернационализацию программного обеспечения с помощью Unicode, а «DBCS enablement» означает использование несовместимых кодировок символов, которые существуют между различными странами Восточной Азии для интернационализации программного обеспечения. Поскольку Unicode, в отличие от многих других кодировок символов, поддерживает все основные языки Восточной Азии, обычно проще включить и поддерживать программное обеспечение, использующее Unicode. DBCS (non-Unicode) enablement обычно требуется только в том случае, если гораздо более старые операционные системы или приложения не поддерживают Unicode.
Трехбайтовый набор символов (TBCS) — это кодировка символов, в которой символы (включая управляющие символы) кодируются тремя байтами.