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


Поддержка Юникода и многобайтовой кодировки (mbcs)

Некоторые языки, например японцы и китайцы, имеют большой кодировки.К программированию поддержку для этих рынков, библиотеки Microsoft Foundation Class (MFC) включается для 2 разных подходов к обработке больших кодировки:

  • Unicode

  • Многобайтовые кодировки (mbcs)

Поддержка MFC для строк в юникоде

Все библиотеки классов условной включена для символов юникода и строк.В частности, класс CString Юникод- разрешения.

UAFXCW.LIB

UAFXCW.PDB

UAFXCWD.LIB

UAFXCWD.PDB

MFC xx U.LIB

MFC xx U.PDB

MFC xx U.DLL

MFC xx UD.LIB

MFC xx UD.PDB

MFC xx UD.DLL

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 для строк mbcs

Библиотека классов также включена для многобайтовых кодировок, но только для символов двойной- байт - наборов (dbcs).

В многобайтовой кодировке, знак может быть один или два байта.Если шириной 2 байта, то его первый байт специальный старший байт", "выбор из указанного диапазона, в зависимости от которого кодовой страницы.Принятый, время опережения и "младшие байты" определяющих уникальный кодирование символов.

Если символ указан _MBCS для построения программы, типа TCHAR, на котором основано CString, сопоставляется с char.Это значение необходимо, чтобы определить, какие байты в CString старших байтов и младшие байты.Предоставляет функции библиотеки времени выполнения языка c, помогающие указать это.

В двухбайтовой кодировке, заданного строка может содержать любые символы ANSI единый- байта, все двухбайтовые символы или сочетание 2.Эти возможности требующих особого ухода в анализ строк.Сюда входят объекты CString.

ПримечаниеПримечание

Сериализация строки в юникоде в MFC может считывать и строками в юникоде, так и mbcs независимо от которых версия приложения.Файлы данных переносимыми между Юникодом и версиями многобайтовой кодировки программы.

Версии универсального текст" использование функций-членов "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)

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

String (ATL/MFC)