comparison xml/ru/docs/njs/reference.xml @ 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 28f98f596974
children cd97adddd757
comparison
equal deleted inserted replaced
2581:324ca14c3003 2582:e162a71453b0
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> 7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
8 8
9 <article name="Справочник" 9 <article name="Справочник"
10 link="/ru/docs/njs/reference.html" 10 link="/ru/docs/njs/reference.html"
11 lang="ru" 11 lang="ru"
12 rev="50"> 12 rev="51">
13 13
14 <section id="summary"> 14 <section id="summary">
15 15
16 <para> 16 <para>
17 <link doc="index.xml">njs</link> предоставляет объекты, методы и свойства 17 <link doc="index.xml">njs</link> предоставляет объекты, методы и свойства
592 в противном случае возвращается <literal>null</literal>: 592 в противном случае возвращается <literal>null</literal>:
593 <example> 593 <example>
594 >> '£'.toBytes().toString('hex') 594 >> '£'.toBytes().toString('hex')
595 'a3' /* a3 является байтом, равным codepoint 00A3 ('£') */ 595 'a3' /* a3 является байтом, равным codepoint 00A3 ('£') */
596 </example> 596 </example>
597 В различные кодировки могут быть преобразованы только байтовые строки.
598 Например строка не может быть кодирована напрямую в <literal>hex</literal>:
599 <example>
600 >> 'αβγδ'.toString('base64')
601 TypeError: argument must be a byte string
602 at String.prototype.toString (native)
603 at main (native)
604 </example>
605 Чтобы преобразовать строку Unicode в hex,
606 сначала необходимо её преобразовать в байтовую строку и затем в hex:
607 <example>
608 >> 'αβγδ'.toUTF8().toString('base64')
609 'zrHOss6zzrQ='
610 </example>
611 597
612 <list type="tag"> 598 <list type="tag">
613 599
614 <tag-name id="string_bytesfrom"><literal>String.bytesFrom(<value>массив</value> 600 <tag-name id="string_bytesfrom"><literal>String.bytesFrom(<value>массив</value>
615 | <value>строка</value>, <value>кодировка</value>)</literal></tag-name> 601 | <value>строка</value>, <value>кодировка</value>)</literal></tag-name>
650 <tag-desc> 636 <tag-desc>
651 Сериализует строку Unicode в байтовую строку. 637 Сериализует строку Unicode в байтовую строку.
652 Возвращает <literal>null</literal>, если в строке найден символ больше, чем 255. 638 Возвращает <literal>null</literal>, если в строке найден символ больше, чем 255.
653 </tag-desc> 639 </tag-desc>
654 640
655 <tag-name id="string_tostring"><literal>String.prototype.toString([<value>кодировка</value>])</literal></tag-name> 641 <tag-name id="string_tostring"><literal>String.prototype.toString(<value>кодировка</value>)</literal></tag-name>
656 <tag-desc> 642 <tag-desc>
657 <para> 643 <para>
658 Если кодировка не указана, 644 Кодирует указанную строку в
659 возвращает указанную строку Unicode string или байтовую строку как в ECMAScript.
660 </para>
661
662 <para>
663 Если кодировка указана,
664 кодирует <link id="string_tobytes">байтовую строку</link> в
665 <literal>hex</literal>, 645 <literal>hex</literal>,
666 <literal>base64</literal> или 646 <literal>base64</literal> или
667 <literal>base64url</literal>. 647 <literal>base64url</literal>:
668 </para> 648 <example>
649 >> 'αβγδ'.toString('base64url')
650 'zrHOss6zzrQ'
651 </example>
652 До версии <link doc="changes.xml" id="njs0.4.3">0.4.3</link>
653 могла быть кодирована только <link id="string_tobytes">байтовая строка</link>:
669 <example> 654 <example>
670 >> 'αβγδ'.toUTF8().toString('base64url') 655 >> 'αβγδ'.toUTF8().toString('base64url')
671 'zrHOss6zzrQ' 656 'zrHOss6zzrQ'
672 </example> 657 </example>
658 </para>
673 </tag-desc> 659 </tag-desc>
674 660
675 <tag-name id="string_toutf8"><literal>String.prototype.toUTF8(<value>начало</value>[, 661 <tag-name id="string_toutf8"><literal>String.prototype.toUTF8(<value>начало</value>[,
676 <value>конец</value>])</literal></tag-name> 662 <value>конец</value>])</literal></tag-name>
677 <tag-desc> 663 <tag-desc>