Mercurial > hg > nginx-site
comparison xml/en/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 | 63cef7604e0d |
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="Reference" | 9 <article name="Reference" |
10 link="/en/docs/njs/reference.html" | 10 link="/en/docs/njs/reference.html" |
11 lang="en" | 11 lang="en" |
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> provides objects, methods and properties | 17 <link doc="index.xml">njs</link> provides objects, methods and properties |
588 otherwise, <literal>null</literal> is returned: | 588 otherwise, <literal>null</literal> is returned: |
589 <example> | 589 <example> |
590 >> '£'.toBytes().toString('hex') | 590 >> '£'.toBytes().toString('hex') |
591 'a3' /* a3 is a byte equal to 00A3 ('£') code point */ | 591 'a3' /* a3 is a byte equal to 00A3 ('£') code point */ |
592 </example> | 592 </example> |
593 Only byte strings can be converted to different encodings. | |
594 For example, a string cannot be encoded to <literal>hex</literal> directly: | |
595 <example> | |
596 >> 'αβγδ'.toString('base64') | |
597 TypeError: argument must be a byte string | |
598 at String.prototype.toString (native) | |
599 at main (native) | |
600 </example> | |
601 To convert a Unicode string to hex, | |
602 first, it should be converted to a byte string and then to hex: | |
603 <example> | |
604 >> 'αβγδ'.toUTF8().toString('base64') | |
605 'zrHOss6zzrQ=' | |
606 </example> | |
607 | 593 |
608 <list type="tag"> | 594 <list type="tag"> |
609 | 595 |
610 <tag-name id="string_bytesfrom"><literal>String.bytesFrom(<value>array</value> | 596 <tag-name id="string_bytesfrom"><literal>String.bytesFrom(<value>array</value> |
611 | <value>string</value>, <value>encoding</value>)</literal></tag-name> | 597 | <value>string</value>, <value>encoding</value>)</literal></tag-name> |
647 Serializes a Unicode string to a byte string. | 633 Serializes a Unicode string to a byte string. |
648 Returns <literal>null</literal> if a character larger than 255 is | 634 Returns <literal>null</literal> if a character larger than 255 is |
649 found in the string. | 635 found in the string. |
650 </tag-desc> | 636 </tag-desc> |
651 | 637 |
652 <tag-name id="string_tostring"><literal>String.prototype.toString([<value>encoding</value>])</literal></tag-name> | 638 <tag-name id="string_tostring"><literal>String.prototype.toString(<value>encoding</value>)</literal></tag-name> |
653 <tag-desc> | 639 <tag-desc> |
654 <para> | 640 <para> |
655 If no <literal>encoding</literal> is specified, | 641 Encodes a string to |
656 returns a specified Unicode string or byte string as in ECMAScript. | |
657 </para> | |
658 | |
659 <para> | |
660 If <literal>encoding</literal> is specified, | |
661 encodes a <link id="string_tobytes">byte string</link> to | |
662 <literal>hex</literal>, | 642 <literal>hex</literal>, |
663 <literal>base64</literal>, or | 643 <literal>base64</literal>, or |
664 <literal>base64url</literal>. | 644 <literal>base64url</literal>: |
665 </para> | 645 <example> |
646 >> 'αβγδ'.toString('base64url') | |
647 'zrHOss6zzrQ' | |
648 </example> | |
649 Before version <link doc="changes.xml" id="njs0.4.3">0.4.3</link>, | |
650 only a <link id="string_tobytes">byte string</link> could be encoded: | |
666 <example> | 651 <example> |
667 >> 'αβγδ'.toUTF8().toString('base64url') | 652 >> 'αβγδ'.toUTF8().toString('base64url') |
668 'zrHOss6zzrQ' | 653 'zrHOss6zzrQ' |
669 </example> | 654 </example> |
655 </para> | |
670 </tag-desc> | 656 </tag-desc> |
671 | 657 |
672 <tag-name id="string_toutf8"><literal>String.prototype.toUTF8(<value>start</value>[, | 658 <tag-name id="string_toutf8"><literal>String.prototype.toUTF8(<value>start</value>[, |
673 <value>end</value>])</literal></tag-name> | 659 <value>end</value>])</literal></tag-name> |
674 <tag-desc> | 660 <tag-desc> |