Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Модуль iconv

Общие сведения

Модуль iconv предоставляет метод конвертации строки с одним типом кодировки в строку с другим типом кодировки, например из ASCII в UTF-8. Он основывается на процедурах с iconv в POSIX.

Точный список доступных кодировок зависит от окружения. Как правило, в список входят ASCII, BIG5, KOI8R, LATIN8, MS-GREEK, SJIS и около 100 других. Чтобы увидеть общий список, введите команду iconv --list в терминале.

Указатель

Ниже приведен перечень всех функций модуля iconv.

Имя

Назначение

iconv.new()

Создание экземпляра iconv

iconv.converter()

Преобразование строки

iconv.new(to, from)

Создание нового iconv-экземпляра.

Параметры:

  • to (string) — имя кодировки, в которую будет выполнено преобразование
  • from (string) — имя кодировки, из которой будет выполнено преобразование

Возвращает

новый экземпляр iconv – фактически вызываемая функция

Тип возвращаемого значения

userdata

Если значение одного из параметров представляет собой недопустимое имя, появится сообщение об ошибке.

Пример:

tarantool> converter = require('iconv').new('UTF8', 'ASCII')---...

converter(input-string)

Преобразование.

Параметры:

  • input-string (string) — строка для преобразования (исходная строка)

Возвращает

строка, полученная в результате преобразования (целевая строка)

Если что-либо в строке input-string нельзя преобразовать, появится сообщение об ошибке, строка останется неизменной.

Пример:

Как известно, кодовая точка Unicode для символа «Д» (CYRILLIC CAPITAL LETTER DE) в шестнадцатеричном виде равна 0414 согласно базе данных символов Unicode. Следовательно, именно так она будет выглядеть в UTF-16. Tarantool обычно использует набор символов UTF-8. Создадим преобразователь из UTF-8 в UTF-16, используем string.hex('Д'), чтобы показать, как выглядит кодировка символа «Д» в исходной строке UTF-8, и string.hex('Д'-после-преобразования), чтобы показать, как она выглядит в целевой строке UTF-16. Поскольку результат равен 0414, можно убедиться, что преобразование iconv работает. (В различных реализациях iconv могут использоваться разные имена, например UTF-16BE вместо UTF16BE.)

tarantool> string.hex('Д')---- d094...tarantool> converter = require('iconv').new('UTF16BE', 'UTF8')---...tarantool> utf16_string = converter('Д')---...tarantool> string.hex(utf16_string)---- '0414'...