Difference between revisions of "DecodeString"
m (1 revision imported) |
1>Admin |
||
Line 15: | Line 15: | ||
== Синтаксис == | == Синтаксис == | ||
<code> | <code> | ||
− | '''DecodeString'''(''<Строка>''{{Optional|,''<Формат декодирования (STRING)>''{{Default|{{Eq}}"INTERNAL"}}}}{{Optional|,''<Результат в формате UTF-16 (INT)>''{{Default|{{Eq}}0}}}}{{Optional|,''<Параметры декодирования (STRING)>''}}):''<Результат (STRING)>'' | + | '''DecodeString'''(''<Строка (STRING)>''{{Optional|,''<Формат декодирования (STRING)>''{{Default|{{Eq}}"INTERNAL"}}}}{{Optional|,''<Результат в формате UTF-16 (INT)>''{{Default|{{Eq}}0}}}}{{Optional|,''<Параметры декодирования (STRING)>''}}):''<Результат (STRING)>'' |
</code> | </code> | ||
==== Аргументы ==== | ==== Аргументы ==== | ||
− | * <code>''<Строка>''</code> - Аргумент, строковое представление которого необходимо декодировать. | + | * <code>''<Строка (STRING)>''</code> - Аргумент, строковое представление которого необходимо декодировать. |
* <code>''<Формат декодирования (STRING)>''</code> - {{Optional}} Текстовый аргумент с наименованием способа кодирования. Для краткого описания каждого способа, см. [[EncodeString]]. Возможны следующие значения: | * <code>''<Формат декодирования (STRING)>''</code> - {{Optional}} Текстовый аргумент с наименованием способа кодирования. Для краткого описания каждого способа, см. [[EncodeString]]. Возможны следующие значения: | ||
** '''Internal''' (по умолчанию) | ** '''Internal''' (по умолчанию) |
Revision as of 13:07, 6 March 2021
DecodeString (Функции работы со строками) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция производит декодирование строки из указанного формата (к примеру, "Base64" или "UUE"). Могут декодироваться как ANSI, так и Unicode строки. См. также EncodeString.
Синтаксис
DecodeString(<Строка (STRING)>,<Формат декодирования (STRING)>="INTERNAL",<Результат в формате UTF-16 (INT)>=0,<Параметры декодирования (STRING)>):<Результат (STRING)>
Аргументы
<Строка (STRING)>
- Аргумент, строковое представление которого необходимо декодировать.<Формат декодирования (STRING)>
- (необязательный аргумент) Текстовый аргумент с наименованием способа кодирования. Для краткого описания каждого способа, см. EncodeString. Возможны следующие значения:- Internal (по умолчанию)
- Internal2
- Internal3
- Base64
- QP, Quoted-printable (планируется к реализации)
- Ascii85 (планируется к реализации)
- PE, Percent-encoding, URL encoding (кодирование URL и пр. Пример:
"%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82"
UTF-8 строка "Привет", закодированная Percent-encoding) - PUNY, Punycode (кодирование доменного имени URL с международными символами и пр. Пример:
"xn--80adxhks.xn--p1ai"
декодируется, как "москва.рф"). Размер строки для декодирования ограничен способом декодирования, при переполнении переменных декодировщика, будет возвращена пустая строка. Третий аргумент функции игнорируется, результат всегда возвращается в UTF-16. Декодирование может происходить в двух режимах. Режим задается в параметрах кодирования в видеMODE:<Режим>
и может принимать значения:- 0 (по умолчанию) -- декодирование произвольных строк (игнорируется доменная структура строки
<домен1>.<домен2>...
, не удаляется префиксxn--
при наличии). К примеру,.-7sbf5ajmsd6a
декодируется вмосква.рф
. - 1 -- декодирование доменных имен (каждое доменное имя из строки
<домен1>.<домен2>...
декодируется отдельно, удаляется префиксxn--
при наличии). К примеру,xn--80adxhks.xn--p1ai
декодируется вмосква.рф
.
- 0 (по умолчанию) -- декодирование произвольных строк (игнорируется доменная структура строки
- UUE, Uuencoding (планируется к реализации)
<Результат в формате UTF-16 (INT)>
- (необязательный аргумент) По умолчанию (0) декодированная строка будет возвращена в однобайтовом формате (ANSI), если же кодировавшаяся строка была в формате UTF-16, необходимо установить этот параметр в единицу, система возвратит строку UTF-16. По содержимому декодированной строки невозможно понять, ANSI это строка или UTF-16, так как она не имеет BOM заголовка или какой-либо другой служебной информации, поэтому, то в каком из двух форматов нужно вернуть декодированную строку, остается на совести разработчика.<Параметры декодирования (STRING)>
- (необязательный аргумент) Текстовая строка, задающая дополнительные параметры при декодировании и способ форматирования результирующей строки. Строка имеет формат<Параметр 1>:<Значение>,<Параметр 2>:<Значение>
. Возможные параметры зависят от способа декодирования.
Возвращаемое значение
Результат будет возвращен в ANSI или UTF-16 в зависимости от значения третьего аргумента.
Примеры
Message(DecodeString("A%d%b%T%W%d%\%R%N!B!@:!@+!@9!@:!","Internal",1)); //Будет выведено: "Проверка, test" Message(DecodeString("HwRABD4EMgQ1BEAEOgQwBCwAIAB0AGUAcwB0AA==","Base64",1)); //Будет выведено: "Проверка, test" Message(DecodeString("_:_\_Z_N_Q_\_V_LNB@:@+@9@:","Internal")); //Для системной кодировки 1251, будет выведено: "Проверка, test" Message(DecodeString("z/Du4uXw6uAsIHRlc3Q=","Base64")); //Для системной кодировки 1251, будет выведено: "Проверка, test"