TranslateFrom
TranslateFrom (Функции работы со строками) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция производит перекодировку строкового представления аргумента из кодовой страницы, заданной вторым аргументом в UTF-16, при необходимости удаляет BOM.
Примеры кодов некоторых кириллических и прочих кодировок:
- -1 -- В функциях загрузки используется как псевдо-кодировка для отключения проверки BOM, загрузка будет происходить безусловно в строку ANSI без какой-либо перекодировки.
- 0 -- ANSI (текущая системная кодировка). При загрузке в такой кодировке, функции загрузки обычно проверяют наличие BOM, если он есть загружают в соответствии с ним.
- 866 -- Кириллица OEM
- 1200 -- UTF-16LE (стандарное многобайтовое строковое представление в системе)
- 1201 -- UTF-16BE (стандарное многобайтовое строковое представление в системе, с переставленными местами байтами)
- 1251 -- Кириллица Windows
- 1252 -- Стандартная латинская кодировка Windows (латиница-1)
- 20866 -- Кириллица KOI-8
- 65000 -- UTF-7
- 65001 -- UTF-8
Синтаксис
TranslateFrom(<Аргумент>,<Кодовая страница (INT)>,<Удалять BOM (INT)>=1):<Результат (STRING)>
Аргументы
<Аргумент>
- Аргумент, строковое представление которого необходимо перекодировать.<Кодовая страница (INT)>
- Кодовая страница исходного текста. Если кодовая страница, из которой необходимо произвести перекодировку, будет аналогом UTF-16, т.е., ее значение будет 1200 (UTF-16LE) или 1201 (UTF-16BE), тогда аргумент будет интерпретирован, как строка в кодировке UTF-16 (многобайтовая), иначе, как строка ANSI (однобайтовая). Внимание: если при перекодировке, к примеру, из UTF-8 (кодовая страница 65001) первый аргумент будет представлять собой строку UTF-16, система сначала превратит эту строку в однобайтовую кодировку ANSI, что может явиться причиной искажения текста оригинальной кодировки. Чтобы исключить такую вероятность, убедитесь, что функция получает аргумент в однобайтовом виде ANSI в случае перекодировки из кодовых страниц, отличных от 1200 и 1201.<Удалять BOM (INT)>
- (необязательный аргумент) Функция не будет проверять наличие BOM в начале строки, если этот аргумент будет равен нулю, иначе (по умолчанию), если в начале текста имеется BOM, соответствующий кодировке, заданной вторым аргументом, функция удалил BOM перед началом кодировки.
Возвращаемое значение
Функция всегда возвращает строку UTF-16.
Примеры
Message(TranslateFrom("Проверка, test",65001)); //Будет выведено "Проверка, test" (пример работает для системной кодировки 1251) Message(TranslateFrom("Проверка, test",0)); //Будет выведено "Проверка, test", функция аналогична конструкции Unicode(Ansi("Проверка, test")) (пример работает для системной кодировки 1251) Message(TranslateFrom("ἄ䀄㸄㈄㔄䀄㨄〄",1201)); //Будет выведено "Проверка", неверное закодированный в UTF-16BE текст возвращается в корректную кодировку