Create a string from a sequence of Unicode code points.


var fromCodePoint = require( '@stdlib/string/from-code-point' );

fromCodePoint( pt1[, pt2[, pt3[, ...]]] )

Creates a string from a sequence of Unicode code points.

var out = fromCodePoint( 9731 );
// returns '☃'

In addition to providing code points as separate arguments, the function supports providing an array-like object as a single argument containing a sequence of code points.

var Uint16Array = require( '@stdlib/array/uint16' );

var out = fromCodePoint( 97, 98, 99 );
// returns 'abc'

out = fromCodePoint( new Uint16Array( [ 97, 98, 99 ] ) );
// returns 'abc'


  • This function differs from String.fromCharCode in the following ways:

    • The function provides support for all valid Unicode values (up to 21 bits). While most common Unicode values can be represented using one 16-bit unit, higher code point characters require two 16-bit units (a surrogate pair consisting of a high and a low surrogate) to form a single character. String.fromCharCode does not support surrogate pairs, supporting only UCS-2, a subset of UTF-16.
  • This function differs from String.fromCodePoint in the following ways:

    • The function supports explicitly providing an array-like object containing a sequence of code points.
    • The function requires at least one code point.
    • The function requires that all code points be nonnegative integers. The function does not support values, such as null, undefined, true, false, '0', '1', etc., which can be cast to integer values.


var randu = require( '@stdlib/random/base/randu' );
var floor = require( '@stdlib/math/base/special/floor' );
var MAX_BMP_CODE_POINT = require( '@stdlib/constants/string/unicode-max-bmp' );
var fromCodePoint = require( '@stdlib/string/from-code-point' );

var x;
var i;

for ( i = 0; i < 100; i++ ) {
    x = floor( randu()*MAX_BMP_CODE_POINT );
    console.log( '%d => %s', x, fromCodePoint( x ) );



Usage: from-code-point [options] [<code_point> <code_point> ...]


  -h,    --help                Print this message.
  -V,    --version             Print the package version.
         --split sep           Delimiter for stdin data. Default: '/\\r?\\n/'.


  • If the split separator is a regular expression, ensure that the split option is either properly escaped or enclosed in quotes.

    # Not escaped...
    $ echo -n $'97\n98\n99' | from-code-point --split /\r?\n/
    # Escaped...
    $ echo -n $'97\n98\n99' | from-code-point --split /\\r?\\n/
  • The implementation ignores trailing delimiters.


$ from-code-point 9731

To use as a standard stream,

$ echo -n '9731' | from-code-point

By default, when used as a standard stream, the implementation assumes newline-delimited data. To specify an alternative delimiter, set the split option.

$ echo -n '97\t98\t99\t' | from-code-point --split '\t'