Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including utf-8 with all npm packages installed. Try it out:

var utf8 = require("utf-8")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

utf-8 v2.0.0

Encode/decode UTF8.

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

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free