Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Программные интерфейсы общего назначения > Прикладные библиотеки и технологии > Библиотека эмуляции терминала > API терминала > term_encoding_to_wchar()



term_encoding_to_wchar()

Перевод символа из кодировки терминала в Юникод

Прототип:

#include <sys/terminal.h>
int term_encoding_to_wchar(terminal_t *term, const char *source, size_t maxsrc, size_t *srctaken, uint16_t *destination);

Аргументы:

term
Указатель на объект терминала, в соответствии с настройками которого будет выполнен перевод.
source
Указатель на буфер символов, из корого функция попытается получить первый символ.
maxsrc
Количество доступных символов в source.
srctaken
Указатель, по адресу которого будет записано использованное количество символов из буфера.
destination
Указатель, по адресу которого будет записан результат перевода. Если активна кодировка UTF-8 и в буфере было недостаточно данных для получения целого символа Юникода, запись в destination не произойдёт.

Библиотека:

terminal

Описание:

Данная функция согласно установленной в терминале таблице кодировки переводит первый символ в переданной строке в Юникод. Если в терминале не установлена таблица кодировки, функция интерпретирует введённую строку в UTF-8 и использует количество байт, достаточное для получения целого символа (максимум 4 байта).

Возвращаемое значение:

0 при успешном переводе, -1 если для перевода было недостаточно данных в буфере.


Note: Если в таблице кодировки не нашлось соответствующего символа, результатом перевода становится '?', и функция возвращает 0. -1 возвращается только в случае, когда данных было недостаточно и попытку перевода можно повторить, дополнив их (например, фрагмент сообщения заканчивался на одном из двух байт символа из кириллицы, и этот остаток необходимо добавить к началу следующего фрагмента).

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

term_wchar_to_encoding(), term_set_charset(), term_charset_load()




Предыдущий раздел: Terminal API