Поделиться через


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*. Они предоставляют правильные сопоставления для или многобайтовой кодировки или юникода.

См. также

Ссылки

Управление строками (CRT)

Другие ресурсы

Strings (ATL/MFC)