Манипулирование строками и преобразование наборов символов, страница 2

всех языков, в том числе и 18000 китайских символов. Данными в коде Unicode можно обмениться с любой системой в мире. К сожалению, требование 2 байт на каждый символ существенно увеличивает расходуемый объем памяти. Повышенное расходование памяти — одна из причин, по которой Unicode не стал собственным набором символов для Windows 9.x.

Для преобразования символов из набора ANSI в набор OEM используются функции CharToOem, CharToOemBuff, OemToChar и OemToCharBuff. Преобразование из набора Unicode в один из традиционных наборов символов выполняется с помощью функции WideCharToMultiByte, а в обратном порядке — с помощью функции MultiByte-ToWideChar.

Функция GetACP возвращает текущую установку кодовой страницы ANSI. Функция GetCPInfo возвращает, в частности, следующую информацию о кодовой странице: сколько байт занимает каждый символ на кодовой странице, а также какой символ замены используется по умолчанию во время преобразований с помощью функции WideCharToMultiByte.

Региональные установки

В главе 21 региональные установки рассматривались с точки зрения используемых временных поясов и языков. Понятие региональной установки, которое было разработано в стандарте ANSI 1989 г., имеет важное значение и для указания используемых кодовых страниц, а также формата даты и времени. К другим важным данным региональной установки относится символ разделителя, используемый для отображения крупных чисел, символ десятичной точки, а также знак денежной единицы. В описании функции GetLocalelnfo приведен список параметров региональной установки, которые могут быть при необходимости запрошены. Функция SetLocalelnfo видоизменяет параметры региональной установки.

Региональные установки характерны и для нитей. Так, функция SetThreadLocale изменяет региональную установку нити. Если же для нити не задана региональная установка, в ней используется региональная установка, принятая по умолчанию. Функция EnumSystemLocales предоставляет список введенных в системе региональных установок.

Еще одним элементом данных, который хранится в региональной установке, является кодовая страница. Преобразование символов, характерное для принятой региональной установки, выполняет функция LCMapString.

Описание функций манипулирования строками и преобразования наборов символов

Функции интерфейса Win API, которые выполняют манипулирование строками и преобразование наборов символов, перечислены в табл. 22.1, а полное их описание следует после этой таблицы.

Таблица 22.1. Сводка функций манипулирования строками и преобразования наборов символов