iconv_open - создаёт
дескриптор
преобразования
кодировки
набора
символов
Standard C library (
libc,
-lc)
#include <iconv.h>
iconv_t iconv_open(const char *tocode, const char *fromcode);
Функция
iconv_open()
создаёт
дескриптор,
предназначенный
для
преобразования
последовательности
байтов с
кодировкой
fromcode в
кодировку
tocode.
Значения,
допустимые
для
кодировок
fromcode и
tocode, и
поддерживаемые
комбинации,
зависят от
операционной
системы.
Для
библиотеки
GNU C
разрешённые
значения
выводятся
по команде
iconv --list, а также
поддерживаются
все
комбинации
перечисленных
значений.
Кроме
этого,
библиотеки
GNU C и GNU libiconv
поддерживают
два
следующих
суффикса:
- //TRANSLIT
- Если к tocode
добавлена
строка
«//TRANSLIT», то
включается
транслитерация.
Это
означает,
что когда
символ не
может быть
представлен
в целевом
наборе
символов,
то он
аппроксимируется
одним или
несколькими
похожими
символами.
- //IGNORE
- Если к tocode
добавлена
строка «//IGNORE»,
то символы,
которые не
могут быть
представлены
в целевом
наборе
символов,
будут
просто
отбрасываться.
Полученный
дескриптор
преобразования
может
использоваться
функцией
iconv(3) любое
количество
раз. Он
остается
неизменным
до тех пор,
пока не
будет
освобождён
функцией
iconv_close(3).
Дескриптор
преобразования
содержит
состояние
перекодировки
После
создания с
помощью
функции
iconv_open(),
состояние
равно
начальному
значению.
Использование
iconv(3) меняет
состояние
преобразования.
Чтобы
вернуть
состояние
в
начальное
значение,
необходимо
использовать
функцию
iconv(3)
с
параметром
inbuf, равным NULL.
On success,
iconv_open() returns a freshly allocated conversion
descriptor. On failure, it returns
(iconv_t) -1 and sets
errno to indicate the error.
Среди
прочих,
может
возникнуть
следующая
ошибка:
- EINVAL
- Преобразование
из
кодировки
fromcode в tocode не
поддерживается
в данной
реализации.
This function is available since glibc 2.1.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
iconv_open() |
Безвредность
в нитях |
MT-Safe locale |
POSIX.1-2001, POSIX.1-2008, SUSv2.
iconv(1),
iconv(3),
iconv_close(3)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitriy S. Seregin
<
[email protected]>, Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]