Шаг 188 - Наборы символов

На данный момент используется несколько наборов символов. Самым старым и распространеным является набор 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 
......

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.