TranslateTo

From SunFlurry wiki
Revision as of 23:02, 20 April 2019 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  TranslateTo (Функции работы со строками)
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число
Визуальность:Нет

Функция производит перекодировку строкового представления аргумента из UTF-16 в кодовую страницу, заданную вторым аргументом, при необходимости добавляя BOM.

Примеры кодов некоторых кириллических и прочих кодировок:

  • 0 -- ANSI (текущая системная кодировка)
  • 866 -- Кириллица OEM
  • 1200 -- UTF-16LE (стандарное многобайтовое строковое представление в системе)
  • 1201 -- UTF-16BE (стандарное многобайтовое строковое представление в системе, с переставленными местами байтами)
  • 1251 -- Кириллица Windows
  • 1252 -- Стандартная латинская кодировка Windows (латиница-1)
  • 20866 -- Кириллица KOI-8
  • 65000 -- UTF-7
  • 65001 -- UTF-8

Синтаксис

TranslateTo(<Аргумент>,<Кодовая страница (INT)>,<Добавить BOM (INT)>=0):<Результат (STRING)>

Аргументы

  • <Аргумент> - Аргумент, строковое представление которого необходимо перекодировать. Аргумент может представлять собой, как ANSI, как и UTF-16 строку.
  • <Кодовая страница (INT)> - Кодовая страница результирующей строки.
  • <Добавить BOM (INT)> - (необязательный аргумент) Если этот аргумент равен 1, функция добавит корректный BOM для кодировок UTF-16LE, UTF-16BE и UTF-8 после завершения процесса перекодирования, в ином случае (по умолчанию), BOM добавлен не будет.

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

Функция всегда возвращает строку UTF-16, если кодовая страница перекодировки будет соответствовать числу 1200 или 1201, в ином случае, будет возвращена однобайтовая (ANSI) строка, содержащая перекодированный текст.

Примеры

Message(TranslateTo("Проверка, test",65001));
//Будет выведено "Проверка, test" (пример работает для системной кодировки 1251)

Message(TranslateTo("Проверка, test",0));
//Будет выведено "Проверка, test", функция аналогична конструкции Ansi(Unicode("Проверка, test")) (пример работает для системной кодировки 1251)

Message(TranslateTo("Проверка",1201));
//Будет выведено "ἄ䀄㸄㈄㔄䀄㨄〄". Текст, закодированный в UTF-16BE нельзя выводить на экран без предварительной перекодировки в стандартный формат.