На данный момент используется несколько наборов символов. Самым старым и распространеным является набор ASCII - этот набор появился еще когда компьютеры были 8 разрядные, и с тех пор для отображения символов используется один байт. Байт состоит из 8 бит и поэтому в этом наборе всего 256 символов.
В операционной системе Windows есть еще два набора символов - это MBCS и Unicode. Последний набор реализован только в Windows NT, но не в Windows 9x.
Для работы с наборами символов в MFC есть специальный заголовочный файл, который реализует основные возможности. Имя у него TCHAR.h. Имеются команды препроцессора для работы с кодировками
_MBCS _UNICODE
По умолчанию MFC использует _MBCS. Вы можете посмотреть или заменить эту установку в Project - Setting - C/C++ - Preprocessor header. Для преобразования символов есть макрокоманды типа _TCHAR или _T. Но на этом все не заканчивается, можно для UNICODE переопределить и основную функцию main для полноценного использования широких символов.
wmain( int argc, wchar_t *argv[ ], wchar_t *envp[ ] )
Для работы со строками часто используеться класс CString этот класс работает, как с Unicode так и с MBCS. Кстати поддержка UNICODE не устанавливается при автоматической установке. Необходимо выбрать произвольную и указать установку UNICODE. Библиотеки MFC c поддержкой UNICODE отличаются от обычных LIB наличием буковки U. Например MFC42U.lib. Предусмотрены специальные функции для работы с UNICODE.
GetTextCharset ...... MultiByteToWideChar ..... WideCharToMultiByte
Так же есть свои макросы и структуры. Для каждой страны в UNICODE предусмотрены смещения.
0 Basic Latin 1 Latin-1 Supplement 2 Latin Extended-A 3 Latin Extended-B 4 IPA Extensions 5 Spacing Modifier Letters 6 Combining Diacritical Marks 7 Basic Greek ......