utf-8

    2.0.0 • Public • Published

    utf-8

    Encode/decode UTF8.

    NPM version Build status Dependency Status devDependency Status Coverage Status Code Climate Dependency Status

    Usage

    npm install utf-8

    Encoding

    A char:

    UTF8.setBytesFromCharCode('é'.charCodeAt(0));
    // [0xC3, 0xA9]

    A string:

    UTF8.setBytesFromString('1.3$ ~= 1€');
    // [49, 46, 51, 36, 32, 126, 61, 32, 49, 226, 130, 172]

    Decoding

    A char:

    String.fromCharCode(UTF8.getCharCode([0xC3, 0xA9]));
    // 'é'

    A string:

    UTF8.getStringFromBytes([49, 46, 51, 36, 32, 126, 61, 32, 49, 226, 130, 172]);
    // '1.3$ ~= 1€'

    TypedArrays are welcome

    As inputs :

    var bytes=new Uint8Array([0xC3, 0xA9, 49, 46, 51, 36, 32, 126, 61, 32, 49, 226, 130, 172]);
     
    // The first char
    String.fromCharCode(UTF8.getCharCode(bytes));
    // é
     
    // The following string at the offset 2
    UTF8.getStringFromBytes(bytes,2);
    // '1.3$ ~= 1€'

    As well as outputs :

    var bytes=new Uint8Array(14);
     
    // First encoding a char
    UTF8.setBytesFromCharCode('é'.charCodeAt(0));
     
    // Then encoding a string
    UTF8.setBytesFromString('1.3$ ~= 1€', 2);

    UTF8 encoding detection

    UTF8.isNotUTF8(bytes);
    // true | false

    This function can prove the text contained by the given bytes is not UTF-8 (or badly encoded UTF-8 string). It's not reciprocally true, especially for short strings with which false positives are frequent.

    Strict mode

    If you try to encode an UTF8 string in an ArrayBuffer too short to contain the complete string, it will silently fail. To avoid this behavior, use the strict mode :

    UTF8.setBytesFromString('1.3$ ~= 1€', 2, null, true);

    Thanks

    • The Debian project for it's free (as freedom) russian/japanese man pages used for real world files tests !

    Stats

    NPM NPM

    License

    MIT

    Install

    npm i utf-8

    DownloadsWeekly Downloads

    701

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    40.7 kB

    Total Files

    21

    Last publish

    Collaborators

    • cipherboy
    • nfroidure