qb-utf8-to-str-tiny
Version:
tiny browser script for converting array of UTF-8 characters to string. not efficient for large files.
67 lines (45 loc) • 2.47 kB
Markdown
[![npm][npm-image]][npm-url]
[![downloads][downloads-image]][npm-url]
[![bitHound Dependencies][proddep-image]][proddep-link]
[![dev dependencies][devdep-image]][devdep-link]
[![code analysis][code-image]][code-link]
[]: https://img.shields.io/npm/v/qb-utf8-to-str-tiny.svg
[]: https://img.shields.io/npm/dm/qb-utf8-to-str-tiny.svg
[]: https://npmjs.org/package/qb-utf8-to-str-tiny
[]: https://www.bithound.io/github/quicbit-js/qb-utf8-to-str-tiny/badges/dependencies.svg
[]: https://www.bithound.io/github/quicbit-js/qb-utf8-to-str-tiny/master/dependencies/npm
[]: https://www.bithound.io/github/quicbit-js/qb-utf8-to-str-tiny/badges/devDependencies.svg
[]: https://www.bithound.io/github/quicbit-js/qb-utf8-to-str-tiny/master/dependencies/npm
[]: https://www.bithound.io/github/quicbit-js/qb-utf8-to-str-tiny/badges/code.svg
[]: https://www.bithound.io/github/quicbit-js/qb-utf8-to-str-tiny
Tiny script for converting utf-8 to string based upon decodeURIComponent().
Runs in nodejs and in browser. Not efficient for large strings.
module.exports = function utf8_to_str (src, off, lim) {
lim = lim == null ? src.length : lim
for (var i = off || 0, s = ''; i < lim; i++) {
var h = src[i].toString(16)
if (h.length < 2) h = '0' + h
s += '%' + h
}
return decodeURIComponent(s)
}
That's it. That's the code.
**Complies with the 100% test coverage and minimum dependency requirements** of
[](http://github.com/quicbit-js/qb-standard) .
npm install qb-utf8-to-str-tiny
npm install qb-utf8-to-str-tiny
node
> var utf2str = require('qb-utf8-to-str-tiny')
> utf2str([ 103,195,174,100,100,195,177,117,112,240,144,130,131,33 ])
'gîddñup𐂃!'
* [src](https://github.com/quicbit-js/qb-standard/blob/master/doc/variable-glossary.md#src-source): an
array or typed-array containing bytes or unsigned integers in UTF-8 format.
* [off](https://github.com/quicbit-js/qb-standard/blob/master/doc/variable-glossary.md#off-offset): an
inclusive byte offset where to start conversion
* [lim](https://github.com/quicbit-js/qb-standard/blob/master/doc/variable-glossary.md#lim-limit): an
exclusive byte offset where to stop conversion