{ "source": "doc/api/string_decoder.md", "modules": [ { "textRaw": "String Decoder", "name": "string_decoder", "stability": 2, "stabilityText": "Stable", "desc": "
The string_decoder
module provides an API for decoding Buffer
objects into\nstrings in a manner that preserves encoded multi-byte UTF-8 and UTF-16\ncharacters. It can be accessed using:
const StringDecoder = require('string_decoder').StringDecoder;\n
\nThe following example shows the basic use of the StringDecoder
class.
const StringDecoder = require('string_decoder').StringDecoder;\nconst decoder = new StringDecoder('utf8');\n\nconst cent = Buffer.from([0xC2, 0xA2]);\nconsole.log(decoder.write(cent));\n\nconst euro = Buffer.from([0xE2, 0x82, 0xAC]);\nconsole.log(decoder.write(euro));\n
\nWhen a Buffer
instance is written to the StringDecoder
instance, an\ninternal buffer is used to ensure that the decoded string does not contain\nany incomplete multibyte characters. These are held in the buffer until the\nnext call to stringDecoder.write()
or until stringDecoder.end()
is called.
In the following example, the three UTF-8 encoded bytes of the European Euro\nsymbol (€
) are written over three separate operations:
const StringDecoder = require('string_decoder').StringDecoder;\nconst decoder = new StringDecoder('utf8');\n\ndecoder.write(Buffer.from([0xE2]));\ndecoder.write(Buffer.from([0x82]));\nconsole.log(decoder.end(Buffer.from([0xAC])));\n
\n",
"classes": [
{
"textRaw": "Class: new StringDecoder([encoding])",
"type": "class",
"name": "new",
"meta": {
"added": [
"v0.1.99"
]
},
"desc": "encoding
{string} The character encoding the StringDecoder
will use.\nDefaults to 'utf8'
.Creates a new StringDecoder
instance.
Returns any remaining input stored in the internal buffer as a string. Bytes\nrepresenting incomplete UTF-8 and UTF-16 characters will be replaced with\nsubstitution characters appropriate for the character encoding.
\nIf the buffer
argument is provided, one final call to stringDecoder.write()
\nis performed before returning the remaining input.
Returns a decoded string, ensuring that any incomplete multibyte characters at\nthe end of the Buffer
are omitted from the returned string and stored in an\ninternal buffer for the next call to stringDecoder.write()
or\nstringDecoder.end()
.