logo search
Литература_1 / photon_old

Функции преобразования

В наших библиотеках языка С предполагается, что "широкий символ" является Unicode, и "мультибайт" – это UTF-8 в принятой по умолчанию локализации. Тип wchar_t определён как беззнаковый 32-битовый тип, и функции wctomb() и mbtowc() осуществляют UTF-8 кодирование в принятой по умолчанию локализации.

 Многобайтовые символы в библиотеке С являются UTF-8 в принимаемой по умолчанию локализации; в различных локализациях многобайтовые символы могут использовать различную кодировку.

Вы можете использовать следующие функции (описанные в "Справочнике библиотечных функций QNX") для преобразования между широкосимвольной и многобайтовой кодировками:

mblen()

Вычисляет длину многобайтовой строки в символах

mbtowc()

Преобразует многобайтовый символ в широкий символ

mbstowcs()

Преобразует многобайтовую строку в широкосимвольную строку

Библиотеки Photon'а используют многобайтовые UTF-8 строки символов: любая функция, обрабатывающая строки, должна быть в состоянии обработать действительную строку UTF-8, и функции, возвращающие строку, могут возвращать строку многобайтовых символов. Это также применяется к ресурсам виджета. Графические драйверы и сервер шрифтов предполагают, что все строки используют UTF-8.

Главная библиотека Photon'а ph предлагает следующие не-ANSI функции (описанные в "Справочнике библиотечных функций Photon'а") для работы с многобайтовыми UTF-8 и широкими символами:

utf8len()

Подсчитывает байты в UTF-8 символе

utf8strblen()

Находит количество UTF-8 символов во фрагменте строки

utf8strchr()

Ищет UTF-8 символ в строке

utf8strichr()

Ищет UTF-8 символ в строке, игнорируя регистр

utf8strirchr()

Ищет в обратном направлении UTF-8 символ в строке, игнорируя регистр

utf8strlen()

Находит длину строки UTF-8 символов

utf8strnchr()

Ищет UTF-8 символ во фрагменте строки

utf8strncmp()

Сравнивает фрагмент строки UTF-8 символов

utf8strndup()

Создаёт копию фрагмента строки UTF-8 символов

utf8strnichr()

Ищет UTF-8 символ во фрагменте строки, игнорируя регистр

utf8strnlen()

Находит количество байт, использованных для строки UTF-8 символов

utf8strrchr()

Ищет в обратном направлении UTF-8 символ в строке

utf8towc()

Преобразует UTF-8 символ в широкосимвольный код

wctolower()

Возвращает эквивалент широкого символа в нижнем регистре

wctoutf8()

Преобразует широкосимвольный код в UTF-8 символ

Эти функции определены в <utf8.h> (заметьте, это не <photon/utf8.h>) и используют UTF-8 кодировку, не принимая во внимание, каковой является текущая локализация. UTF8_CUR_MAX определяет максимальное число байтов в UTF-8 символе.