Unicode and Multibyte Character Set (MBCS) Support
В некоторых языках, например, китайский, японский и имеют объемные кодировки. Для поддержки программирование для этих рынков библиотеки Microsoft Foundation Class (MFC) включено для 2 различных подходов к обработке объемные кодировки:
Unicode
Многобайтовые кодировки (многобайтовая кодировка)
Необходимо использовать Юникода для всех новых проектов.
Поддержка MFC для строк юникода
Все библиотеки классов в включена для символов юникода и строк. В частности, класс CString поддерживает юникод.
UAFXCW.LIB |
UAFXCW.PDB |
UAFXCWD.LIB |
UAFXCWD.PDB |
xx U.LIB MFC |
xx U.PDB MFC |
xx U.DLL MFC |
xx UD.LIB MFC |
xx UD.PDB MFC |
xx UD.DLL MFC |
MFCS xx U.LIB |
MFCS xx U.PDB |
MFCS xx UD.LIB |
MFCS xx UD.PDB |
MFCM xx U.LIB |
MFCM xx U.PDB |
MFCM xx U.DLL |
MFCM xx UD.LIB |
MFCM xx UD.PDB |
MFCM xx UD.DLL |
(xx — номер версии файла; например, «80» означает версию 8.0).
CString зависит от типа данных TCHAR. Если символ _UNICODE указан для построения программы, TCHAR определяется как тип wchar_t, 16 — тип кодирования символов. В противном случае — значение TCHAR задано как char, существует 8 бит кодирование символов. Поэтому в юникод разрядных CString, состоящее из 16 символов. Без, он состоит из символов юникода типа char.
Щелкните программирование юникода приложения, также:
Использовать макрос _T должна добавляться к строковым литералам кода, чтобы быть будет в юникод.
При передаче строки, внимание оплаты в требуют ли аргументы функции длина в символах или длину в байтах. Различие очень важно при использовании строк юникода.
Использовать переносимые версии функций среды выполнения C строкового обработки.
Используйте следующие типы данных для указателей символов и символов:
TCHAR, где можно использовать char.
LPTSTR, где можно использовать char*.
LPCTSTR, где можно использовать const char*. CString предоставляет оператор LPCTSTR преобразование между CString и LPCTSTR.
конструкторы CString, операторы присваивания и операторы сравнения, также юникод языковых и региональных параметров.
Дополнительные сведения о юникоде программировании см. в разделе Разделы юникода. Ссылка библиотеки времени выполнения определяет переносимые версии всех своих функций обработки строк. Категория см. в разделе Интернационализация.
Поддержка MFC для строк многобайтовой кодировки
Предупреждение
Строки многобайтовой кодировки традиционная технология и не должны использоваться в новых проектах.Следующие сведения предоставляются для сценариев, в которых необходимо сохранить существующий код, использующих многобайтовые кодировки, и она не подходит для обновления кода для использования юникода.
Библиотека классов также включена для многобайтовых кодировок, но только для двухбайтовых кодировках (DBCS) (DBCS).
![]() |
---|
В Visual Studio 2013 и более поздних версиях, версии многобайтовой кодировки MFC DLL доступны как свободные надстройки в Visual Studio с сайта загрузки MSDN.Дополнительные сведения см. в разделе Надстройка многобайтовой кодировки библиотеки DLL MFC. |
В многобайтовой кодировке, символ может быть один или два байта ширину. Если занимает 2 байта, его первый байт специальный «старшего», будет из указанного диапазона, в зависимости от того, кодовая страница в использовании. Принято вместе, и «младшие байты» определяют уникальные кодирование символов.
Если символ _MBCS указан для построения программы, типа TCHAR, в котором CString сопоставляет, основанных на char. Этот метод к событию, чтобы определить, какие байты в CString старших байтов и что младшие байты. Предоставляет функции библиотеки времени выполнения C, помогающие определить это.
В DBCS, указанная строка может содержать однобайтовые символы ANSI, все двухбайтовые символы, или сочетание 2. Эти возможности требуют специального ухода при анализе строки. Это включает объекты CString.
Примечание
Сериализация строки юникода в MFC может считывать Юникода и строки многобайтовой кодировки вне зависимости от того, версия приложения, которая выполняется.Файлы данных переносимые между версиями многобайтовой кодировки юникод и программы.
версии универсального текста» использования функции-члены CString «специальные функции времени выполнения C — сделать вызов, или они используют юникод языковых функций. Поэтому, например, если функция CString обычно вызыватьTfа будет strcmp, она вызывает соответствующие функции _tcscmp универсальный команды вместо текста. В зависимости от того как символы _MBCS и _UNICODE определены, сопоставления _tcscmp следующим образом:
_MBCS указана |
_mbscmp |
_UNICODE указана |
wcscmp |
Нулевой символ не определен |
strcmp |
Примечание
Символы _MBCS и _UNICODE являются взаимоисключающими.
Сопоставления функции Универсальный текста команды для всех этих процедур выполнения обработки рассматриваются в разделе Справочник по библиотеке времени выполнения C. В частности, см. в разделе Интернационализация.
Аналогично, методы CString реализованы с помощью «универсальных» сопоставлений типов данных. Для включения и многобайтовые кодировки и юникод MFC использует TCHAR для char, LPTSTR, char* и LPCTSTR для const char*. Они предоставляют правильные сопоставления для или многобайтовой кодировки или юникода.