Структура CPINFOEXA (winnls.h)
Содержит сведения о кодовой странице. Эта структура используется функцией GetCPInfoEx .
Синтаксис
typedef struct _cpinfoexA {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
WCHAR UnicodeDefaultChar;
UINT CodePage;
CHAR CodePageName[MAX_PATH];
} CPINFOEXA, *LPCPINFOEXA;
Члены
MaxCharSize
Максимальная длина (в байтах) символа на кодовой странице. Длина может быть 1 для однобайтовой кодировки (SBCS), 2 для двухбайтовой кодировки (DBCS) или значение больше 2 для других типов наборов символов. Функция не может использовать размер для отличия SBCS или DBCS от других наборов символов из-за других факторов, например использования кодовых страниц ISCII или ISO-2022-xx.
DefaultChar[MAX_DEFAULTCHAR]
Символ по умолчанию, используемый при переводе символьных строк на определенную кодовую страницу. Этот символ используется функцией WideCharToMultiByte , если не указан явный символ по умолчанию. По умолчанию обычно используется символ "?" для кодовой страницы.
LeadByte[MAX_LEADBYTES]
Массив диапазонов байтов с фиксированной длиной, для которого число диапазонов байтов свинца является переменным. Если кодовая страница не содержит байтов потенциальных данных, каждому элементу массива присваивается значение NULL. Если кодовая страница содержит начальные байты, массив задает начальное и конечное значение для каждого диапазона. Диапазоны являются инклюзивными, а максимальное количество диапазонов для любой кодовой страницы составляет пять. Массив использует два байта для описания каждого диапазона с двумя пустыми байтами в качестве признака конца после последнего диапазона.
UnicodeDefaultChar
Символ Юникода по умолчанию используется в переводах с определенной кодовой страницы. По умолчанию обычно используется символ "?" или символ средней точки катаканы. Символ Юникода по умолчанию используется функцией MultiByteToWideChar .
CodePage
Значение кодовой страницы. Это значение отражает кодовую страницу, переданную в функцию GetCPInfoEx . Список ANSI и других кодовых страниц см. в разделе Кодовые страницы .
CodePageName[MAX_PATH]
Полное имя кодовой страницы. Обратите внимание, что это имя локализовано и не гарантирует уникальность или согласованность между версиями операционной системы или компьютерами.
Комментарии
Байты потенциальных пользователей являются уникальными для кодовых страниц DBCS, в которых допускается более 256 символов. Байт свинца — это первый байт двухбайтового символа в DBCS. На каждой кодовой странице DBCS байты потенциального клиента занимают определенный диапазон байтовых значений. Этот диапазон отличается для разных кодов.
Информация о потенциальных байтах не очень полезна для большинства кодовых страниц и даже не предоставляется для многих многобайтовых кодировок, например UTF-8 и GB18030. Приложениям не рекомендуется использовать эти сведения для прогнозирования того, что будет делать функция MultiByteToWideChar или WideCharToMultiByte . Функция может в конечном итоге использовать символ по умолчанию или выполнять другое поведение по умолчанию, если байты, следующие за байтом свинца, не являются ожидаемыми.
Примечание
Заголовок winnls.h определяет CPINFOEX как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Верхняя часть | winnls.h (включая Windows.h) |