{"_id":"utf8-stream","_rev":"404047","name":"utf8-stream","description":"buffer utf8 characters that would otherwise span chunk boundaries","dist-tags":{"latest":"0.0.0"},"maintainers":[{"name":"substack","email":""}],"time":{"modified":"2021-08-04T04:42:33.000Z","created":"2013-07-19T12:13:31.083Z","0.0.0":"2013-07-19T12:13:31.083Z"},"users":{},"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"repository":{"type":"git","url":"git://github.com/substack/utf8-stream.git"},"versions":{"0.0.0":{"name":"utf8-stream","version":"0.0.0","description":"buffer utf8 characters that would otherwise span chunk boundaries","main":"index.js","dependencies":{"readable-stream":"~1.0.2"},"devDependencies":{"chunky":"~0.0.0","through":"~2.3.4","tape":"~1.0.4"},"scripts":{"test":"tape test/*.js"},"repository":{"type":"git","url":"git://github.com/substack/utf8-stream.git"},"homepage":"https://github.com/substack/utf8-stream","keywords":["utf8","unicode","chunk","boundary","encoding","buffer","toString"],"author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT","readmeFilename":"readme.markdown","bugs":{"url":"https://github.com/substack/utf8-stream/issues"},"_id":"utf8-stream@0.0.0","dist":{"shasum":"05ce4107fceaf893a2c838fe63a1d423455c1fc4","size":2708,"noattachment":false,"key":"/utf8-stream/-/utf8-stream-0.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/utf8-stream/download/utf8-stream-0.0.0.tgz"},"_from":".","_npmVersion":"1.3.0","_npmUser":{"name":"substack","email":"mail@substack.net"},"maintainers":[{"name":"substack","email":""}],"directories":{},"publish_time":1374236011083,"_cnpm_publish_time":1374236011083,"_hasShrinkwrap":false}},"readme":"# utf8-stream\n\nbuffer utf8 characters that would otherwise span chunk boundaries\n\n[![build status](https://secure.travis-ci.org/substack/utf8-stream.png)](http://travis-ci.org/substack/utf8-stream)\n\n# example\n\nHere we'll write some chinese characters at random byte offsets:\n\n``` js\nvar utf8Stream = require('utf8-stream');\nvar through = require('through');\n\nvar u8 = utf8Stream();\nu8.pipe(through(function (buf) {\n    var s = buf.toString('utf8');\n    this.queue(s.split('').join('\\n') + '\\n');\n})).pipe(process.stdout);\n\nu8.write(Buffer([ 0xe9, 0x81 ]));\nu8.write(Buffer([ 0x99, 0xe9, 0x81, 0xa0, 0xe6 ]));\nu8.write(Buffer([ 0x9c, 0xaa, 0xe4, 0xbe ]));\nu8.write(Buffer([ 0x86, 0xe7, 0x9a, 0x84, 0xe4, 0xba, 0x8b ]));\nu8.write(Buffer([ 0xe4, 0xbb, 0xb6 ]));\nu8.end();\n```\n\nInside the `through(function (buf) {})`, each `buf` will never span a utf8\nmulti-byte character so we can just call `.toString('utf8')`.\n\noutput:\n\n```\n遙\n遠\n未\n來\n的\n事\n件\n```\n\n# methods\n\n``` js\nvar utf8Stream = require('utf8-stream')\n```\n\n## var u8 = utf8Stream()\n\nReturn a through stream `u8` that will never emit a chunk that spans a utf8\nmulti-byte character.\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install utf8-stream\n```\n\n# license\n\nMIT\n","_attachments":{},"readmeFilename":"readme.markdown","homepage":"https://github.com/substack/utf8-stream","bugs":{"url":"https://github.com/substack/utf8-stream/issues"},"license":"MIT"}