Mercurial > hg > nginx-site
changeset 2582:e162a71453b0
Improved String.prototype.toString() for ordinary strings in njs.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Tue, 11 Aug 2020 12:34:32 +0100 |
parents | 324ca14c3003 |
children | cd97adddd757 |
files | xml/en/docs/njs/reference.xml xml/ru/docs/njs/reference.xml |
diffstat | 2 files changed, 22 insertions(+), 50 deletions(-) [+] |
line wrap: on
line diff
--- a/xml/en/docs/njs/reference.xml +++ b/xml/en/docs/njs/reference.xml @@ -9,7 +9,7 @@ <article name="Reference" link="/en/docs/njs/reference.html" lang="en" - rev="50"> + rev="51"> <section id="summary"> @@ -590,20 +590,6 @@ otherwise, <literal>null</literal> is re >> '£'.toBytes().toString('hex') 'a3' /* a3 is a byte equal to 00A3 ('£') code point */ </example> -Only byte strings can be converted to different encodings. -For example, a string cannot be encoded to <literal>hex</literal> directly: -<example> ->> 'αβγδ'.toString('base64') -TypeError: argument must be a byte string - at String.prototype.toString (native) - at main (native) -</example> -To convert a Unicode string to hex, -first, it should be converted to a byte string and then to hex: -<example> ->> 'αβγδ'.toUTF8().toString('base64') -'zrHOss6zzrQ=' -</example> <list type="tag"> @@ -649,24 +635,24 @@ Returns <literal>null</literal> if a cha found in the string. </tag-desc> -<tag-name id="string_tostring"><literal>String.prototype.toString([<value>encoding</value>])</literal></tag-name> +<tag-name id="string_tostring"><literal>String.prototype.toString(<value>encoding</value>)</literal></tag-name> <tag-desc> <para> -If no <literal>encoding</literal> is specified, -returns a specified Unicode string or byte string as in ECMAScript. -</para> - -<para> -If <literal>encoding</literal> is specified, -encodes a <link id="string_tobytes">byte string</link> to +Encodes a string to <literal>hex</literal>, <literal>base64</literal>, or -<literal>base64url</literal>. -</para> +<literal>base64url</literal>: +<example> +>> 'αβγδ'.toString('base64url') +'zrHOss6zzrQ' +</example> +Before version <link doc="changes.xml" id="njs0.4.3">0.4.3</link>, +only a <link id="string_tobytes">byte string</link> could be encoded: <example> >> 'αβγδ'.toUTF8().toString('base64url') 'zrHOss6zzrQ' </example> +</para> </tag-desc> <tag-name id="string_toutf8"><literal>String.prototype.toUTF8(<value>start</value>[,
--- a/xml/ru/docs/njs/reference.xml +++ b/xml/ru/docs/njs/reference.xml @@ -9,7 +9,7 @@ <article name="Справочник" link="/ru/docs/njs/reference.html" lang="ru" - rev="50"> + rev="51"> <section id="summary"> @@ -594,20 +594,6 @@ true, если буфер должен иметь флаг <literal>flush</literal> >> '£'.toBytes().toString('hex') 'a3' /* a3 является байтом, равным codepoint 00A3 ('£') */ </example> -В различные кодировки могут быть преобразованы только байтовые строки. -Например строка не может быть кодирована напрямую в <literal>hex</literal>: -<example> ->> 'αβγδ'.toString('base64') -TypeError: argument must be a byte string - at String.prototype.toString (native) - at main (native) -</example> -Чтобы преобразовать строку Unicode в hex, -сначала необходимо её преобразовать в байтовую строку и затем в hex: -<example> ->> 'αβγδ'.toUTF8().toString('base64') -'zrHOss6zzrQ=' -</example> <list type="tag"> @@ -652,24 +638,24 @@ TypeError: argument must be a byte strin Возвращает <literal>null</literal>, если в строке найден символ больше, чем 255. </tag-desc> -<tag-name id="string_tostring"><literal>String.prototype.toString([<value>кодировка</value>])</literal></tag-name> +<tag-name id="string_tostring"><literal>String.prototype.toString(<value>кодировка</value>)</literal></tag-name> <tag-desc> <para> -Если кодировка не указана, -возвращает указанную строку Unicode string или байтовую строку как в ECMAScript. -</para> - -<para> -Если кодировка указана, -кодирует <link id="string_tobytes">байтовую строку</link> в +Кодирует указанную строку в <literal>hex</literal>, <literal>base64</literal> или -<literal>base64url</literal>. -</para> +<literal>base64url</literal>: +<example> +>> 'αβγδ'.toString('base64url') +'zrHOss6zzrQ' +</example> +До версии <link doc="changes.xml" id="njs0.4.3">0.4.3</link> +могла быть кодирована только <link id="string_tobytes">байтовая строка</link>: <example> >> 'αβγδ'.toUTF8().toString('base64url') 'zrHOss6zzrQ' </example> +</para> </tag-desc> <tag-name id="string_toutf8"><literal>String.prototype.toUTF8(<value>начало</value>[,