GIF89; GIF89; %PDF- %PDF-
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# String decoder
<!--introduced_in=v0.10.0-->
> Stability: 2 - Stable
<!-- source_link=lib/string_decoder.js -->
The `node:string_decoder` module provides an API for decoding `Buffer` objects
into strings in a manner that preserves encoded multi-byte UTF-8 and UTF-16
characters. It can be accessed using:
```mjs
import { StringDecoder } from 'node:string_decoder';
```
```cjs
const { StringDecoder } = require('node:string_decoder');
```
The following example shows the basic use of the `StringDecoder` class.
```mjs
import { StringDecoder } from 'node:string_decoder';
import { Buffer } from 'node:buffer';
const decoder = new StringDecoder('utf8');
const cent = Buffer.from([0xC2, 0xA2]);
console.log(decoder.write(cent)); // Prints: ¢
const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro)); // Prints: €
```
```cjs
const { StringDecoder } = require('node:string_decoder');
const decoder = new StringDecoder('utf8');
const cent = Buffer.from([0xC2, 0xA2]);
console.log(decoder.write(cent)); // Prints: ¢
const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro)); // Prints: €
```
When a `Buffer` instance is written to the `StringDecoder` instance, an
internal buffer is used to ensure that the decoded string does not contain
any incomplete multibyte characters. These are held in the buffer until the
next call to `stringDecoder.write()` or until `stringDecoder.end()` is called.
In the following example, the three UTF-8 encoded bytes of the European Euro
symbol (`€`) are written over three separate operations:
```mjs
import { StringDecoder } from 'node:string_decoder';
import { Buffer } from 'node:buffer';
const decoder = new StringDecoder('utf8');
decoder.write(Buffer.from([0xE2]));
decoder.write(Buffer.from([0x82]));
console.log(decoder.end(Buffer.from([0xAC]))); // Prints: €
```
```cjs
const { StringDecoder } = require('node:string_decoder');
const decoder = new StringDecoder('utf8');
decoder.write(Buffer.from([0xE2]));
decoder.write(Buffer.from([0x82]));
console.log(decoder.end(Buffer.from([0xAC]))); // Prints: €
```
## Class: `StringDecoder`
### `new StringDecoder([encoding])`
<!-- YAML
added: v0.1.99
-->
* `encoding` {string} The character [encoding][] the `StringDecoder` will use.
**Default:** `'utf8'`.
Creates a new `StringDecoder` instance.
### `stringDecoder.end([buffer])`
<!-- YAML
added: v0.9.3
-->
* `buffer` {string|Buffer|TypedArray|DataView} The bytes to decode.
* Returns: {string}
Returns any remaining input stored in the internal buffer as a string. Bytes
representing incomplete UTF-8 and UTF-16 characters will be replaced with
substitution characters appropriate for the character encoding.
If the `buffer` argument is provided, one final call to `stringDecoder.write()`
is performed before returning the remaining input.
After `end()` is called, the `stringDecoder` object can be reused for new input.
### `stringDecoder.write(buffer)`
<!-- YAML
added: v0.1.99
changes:
- version: v8.0.0
pr-url: https://github.com/nodejs/node/pull/9618
description: Each invalid character is now replaced by a single replacement
character instead of one for each individual byte.
-->
* `buffer` {string|Buffer|TypedArray|DataView} The bytes to decode.
* Returns: {string}
Returns a decoded string, ensuring that any incomplete multibyte characters at
the end of the `Buffer`, or `TypedArray`, or `DataView` are omitted from the
returned string and stored in an internal buffer for the next call to
`stringDecoder.write()` or `stringDecoder.end()`.
[encoding]: buffer.md#buffers-and-character-encodings
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| assets | Folder | 0755 |
|
|
| addons.html | File | 107.46 KB | 0644 |
|
| addons.json.gz | File | 11.01 KB | 0644 |
|
| addons.md | File | 39.89 KB | 0644 |
|
| all.html | File | 8.67 MB | 0644 |
|
| all.json.gz | File | 1.01 MB | 0644 |
|
| assert.html | File | 215.02 KB | 0644 |
|
| assert.json.gz | File | 15.05 KB | 0644 |
|
| assert.md | File | 72.71 KB | 0644 |
|
| async_context.html | File | 85.71 KB | 0644 |
|
| async_context.json.gz | File | 7.18 KB | 0644 |
|
| async_context.md | File | 25.17 KB | 0644 |
|
| async_hooks.html | File | 88.88 KB | 0644 |
|
| async_hooks.json.gz | File | 9.82 KB | 0644 |
|
| async_hooks.md | File | 30.52 KB | 0644 |
|
| buffer.html | File | 484.41 KB | 0644 |
|
| buffer.json.gz | File | 29.12 KB | 0644 |
|
| buffer.md | File | 149.42 KB | 0644 |
|
| child_process.html | File | 214.18 KB | 0644 |
|
| child_process.json.gz | File | 21.81 KB | 0644 |
|
| child_process.md | File | 83.3 KB | 0644 |
|
| cli.html | File | 258.67 KB | 0644 |
|
| cli.json.gz | File | 39.13 KB | 0644 |
|
| cli.md | File | 113.19 KB | 0644 |
|
| cluster.html | File | 92.16 KB | 0644 |
|
| cluster.json.gz | File | 9.46 KB | 0644 |
|
| cluster.md | File | 28.89 KB | 0644 |
|
| console.html | File | 63.73 KB | 0644 |
|
| console.json.gz | File | 6.28 KB | 0644 |
|
| console.md | File | 17.38 KB | 0644 |
|
| corepack.html | File | 15.56 KB | 0644 |
|
| corepack.json | File | 866 B | 0644 |
|
| corepack.md | File | 401 B | 0644 |
|
| crypto.html | File | 526.52 KB | 0644 |
|
| crypto.json.gz | File | 46.5 KB | 0644 |
|
| crypto.md | File | 193.72 KB | 0644 |
|
| debugger.html | File | 30.54 KB | 0644 |
|
| debugger.json.gz | File | 3.42 KB | 0644 |
|
| debugger.md | File | 7.88 KB | 0644 |
|
| deprecations.html | File | 237.81 KB | 0644 |
|
| deprecations.json.gz | File | 28.63 KB | 0644 |
|
| deprecations.md | File | 117.72 KB | 0644 |
|
| dgram.html | File | 93.62 KB | 0644 |
|
| dgram.json.gz | File | 10.63 KB | 0644 |
|
| dgram.md | File | 32.28 KB | 0644 |
|
| diagnostics_channel.html | File | 130.69 KB | 0644 |
|
| diagnostics_channel.json.gz | File | 10.38 KB | 0644 |
|
| diagnostics_channel.md | File | 39.31 KB | 0644 |
|
| dns.html | File | 150.29 KB | 0644 |
|
| dns.json.gz | File | 16.91 KB | 0644 |
|
| dns.md | File | 59.01 KB | 0644 |
|
| documentation.html | File | 27.74 KB | 0644 |
|
| documentation.json.gz | File | 2.57 KB | 0644 |
|
| documentation.md | File | 5.68 KB | 0644 |
|
| domain.html | File | 49.94 KB | 0644 |
|
| domain.json.gz | File | 6.21 KB | 0644 |
|
| domain.md | File | 15.21 KB | 0644 |
|
| embedding.html | File | 27.42 KB | 0644 |
|
| embedding.json.gz | File | 3.03 KB | 0644 |
|
| embedding.md | File | 6.74 KB | 0644 |
|
| environment_variables.html | File | 24.29 KB | 0644 |
|
| environment_variables.json.gz | File | 2.58 KB | 0644 |
|
| environment_variables.md | File | 5.08 KB | 0644 |
|
| errors.html | File | 337.36 KB | 0644 |
|
| errors.json.gz | File | 47.68 KB | 0644 |
|
| errors.md | File | 112.09 KB | 0644 |
|
| esm.html | File | 93.22 KB | 0644 |
|
| esm.json.gz | File | 16 KB | 0644 |
|
| esm.md | File | 44.27 KB | 0644 |
|
| events.html | File | 236.33 KB | 0644 |
|
| events.json.gz | File | 17.91 KB | 0644 |
|
| events.md | File | 68.71 KB | 0644 |
|
| fs.html | File | 666.11 KB | 0644 |
|
| fs.json.gz | File | 71.32 KB | 0644 |
|
| fs.md | File | 263.58 KB | 0644 |
|
| globals.html | File | 98.26 KB | 0644 |
|
| globals.json.gz | File | 12.43 KB | 0644 |
|
| globals.md | File | 29.48 KB | 0644 |
|
| http.html | File | 330.81 KB | 0644 |
|
| http.json.gz | File | 40 KB | 0644 |
|
| http.md | File | 126.6 KB | 0644 |
|
| http2.html | File | 389.2 KB | 0644 |
|
| http2.json.gz | File | 42.34 KB | 0644 |
|
| http2.md | File | 152.2 KB | 0644 |
|
| https.html | File | 72.6 KB | 0644 |
|
| https.json.gz | File | 6.21 KB | 0644 |
|
| https.md | File | 21.04 KB | 0644 |
|
| index.html | File | 13.9 KB | 0644 |
|
| index.json | File | 54 B | 0644 |
|
| index.md | File | 2.06 KB | 0644 |
|
| inspector.html | File | 65.18 KB | 0644 |
|
| inspector.json.gz | File | 5.74 KB | 0644 |
|
| inspector.md | File | 17.75 KB | 0644 |
|
| intl.html | File | 34.48 KB | 0644 |
|
| intl.json.gz | File | 4.12 KB | 0644 |
|
| intl.md | File | 11.49 KB | 0644 |
|
| module.html | File | 171.06 KB | 0644 |
|
| module.json.gz | File | 21.59 KB | 0644 |
|
| module.md | File | 69.85 KB | 0644 |
|
| modules.html | File | 96.67 KB | 0644 |
|
| modules.json.gz | File | 14.83 KB | 0644 |
|
| modules.md | File | 40.53 KB | 0644 |
|
| n-api.html | File | 432.96 KB | 0644 |
|
| n-api.json.gz | File | 55.7 KB | 0644 |
|
| n-api.md | File | 235.86 KB | 0644 |
|
| net.html | File | 167.45 KB | 0644 |
|
| net.json.gz | File | 20.51 KB | 0644 |
|
| net.md | File | 60.3 KB | 0644 |
|
| os.html | File | 74.59 KB | 0644 |
|
| os.json.gz | File | 9.18 KB | 0644 |
|
| os.md | File | 36.29 KB | 0644 |
|
| packages.html | File | 89.9 KB | 0644 |
|
| packages.json.gz | File | 13.05 KB | 0644 |
|
| packages.md | File | 38.8 KB | 0644 |
|
| path.html | File | 57.7 KB | 0644 |
|
| path.json.gz | File | 5.43 KB | 0644 |
|
| path.md | File | 16.48 KB | 0644 |
|
| perf_hooks.html | File | 187.34 KB | 0644 |
|
| perf_hooks.json.gz | File | 13.83 KB | 0644 |
|
| perf_hooks.md | File | 59.15 KB | 0644 |
|
| permissions.html | File | 29.01 KB | 0644 |
|
| permissions.json.gz | File | 3.64 KB | 0644 |
|
| permissions.md | File | 8.35 KB | 0644 |
|
| process.html | File | 343.73 KB | 0644 |
|
| process.json.gz | File | 37.12 KB | 0644 |
|
| process.md | File | 128.36 KB | 0644 |
|
| punycode.html | File | 27.65 KB | 0644 |
|
| punycode.json.gz | File | 2 KB | 0644 |
|
| punycode.md | File | 4.19 KB | 0644 |
|
| querystring.html | File | 29.92 KB | 0644 |
|
| querystring.json.gz | File | 2.65 KB | 0644 |
|
| querystring.md | File | 5.55 KB | 0644 |
|
| readline.html | File | 115.99 KB | 0644 |
|
| readline.json.gz | File | 11.81 KB | 0644 |
|
| readline.md | File | 41.32 KB | 0644 |
|
| repl.html | File | 96.41 KB | 0644 |
|
| repl.json.gz | File | 11.56 KB | 0644 |
|
| repl.md | File | 31.55 KB | 0644 |
|
| report.html | File | 101.16 KB | 0644 |
|
| report.json.gz | File | 7.44 KB | 0644 |
|
| report.md | File | 23.41 KB | 0644 |
|
| single-executable-applications.html | File | 52.13 KB | 0644 |
|
| single-executable-applications.json.gz | File | 6.77 KB | 0644 |
|
| single-executable-applications.md | File | 18.27 KB | 0644 |
|
| sqlite.html | File | 92.73 KB | 0644 |
|
| sqlite.json.gz | File | 11 KB | 0644 |
|
| sqlite.md | File | 34.86 KB | 0644 |
|
| stream.html | File | 412.01 KB | 0644 |
|
| stream.json.gz | File | 53.26 KB | 0644 |
|
| stream.md | File | 152.09 KB | 0644 |
|
| string_decoder.html | File | 28.31 KB | 0644 |
|
| string_decoder.json.gz | File | 1.59 KB | 0644 |
|
| string_decoder.md | File | 3.57 KB | 0644 |
|
| synopsis.html | File | 20.35 KB | 0644 |
|
| synopsis.json | File | 2.96 KB | 0644 |
|
| synopsis.md | File | 2.11 KB | 0644 |
|
| test.html | File | 343.78 KB | 0644 |
|
| test.json.gz | File | 31.84 KB | 0644 |
|
| test.md | File | 122.47 KB | 0644 |
|
| timers.html | File | 62.4 KB | 0644 |
|
| timers.json.gz | File | 5.33 KB | 0644 |
|
| timers.md | File | 16.76 KB | 0644 |
|
| tls.html | File | 203.47 KB | 0644 |
|
| tls.json.gz | File | 35.24 KB | 0644 |
|
| tls.md | File | 98.58 KB | 0644 |
|
| tracing.html | File | 43.55 KB | 0644 |
|
| tracing.json.gz | File | 3.58 KB | 0644 |
|
| tracing.md | File | 10.58 KB | 0644 |
|
| tty.html | File | 40.73 KB | 0644 |
|
| tty.json.gz | File | 3.88 KB | 0644 |
|
| tty.md | File | 9.56 KB | 0644 |
|
| typescript.html | File | 29.27 KB | 0644 |
|
| typescript.json.gz | File | 3.38 KB | 0644 |
|
| typescript.md | File | 7.69 KB | 0644 |
|
| url.html | File | 161.29 KB | 0644 |
|
| url.json.gz | File | 16.67 KB | 0644 |
|
| url.md | File | 57.4 KB | 0644 |
|
| util.html | File | 351.85 KB | 0644 |
|
| util.json.gz | File | 30.22 KB | 0644 |
|
| util.md | File | 114.07 KB | 0644 |
|
| v8.html | File | 134.81 KB | 0644 |
|
| v8.json.gz | File | 14.51 KB | 0644 |
|
| v8.md | File | 43.79 KB | 0644 |
|
| vm.html | File | 188 KB | 0644 |
|
| vm.json.gz | File | 22.9 KB | 0644 |
|
| vm.md | File | 80.88 KB | 0644 |
|
| wasi.html | File | 32.28 KB | 0644 |
|
| wasi.json.gz | File | 3.49 KB | 0644 |
|
| wasi.md | File | 8.25 KB | 0644 |
|
| webcrypto.html | File | 161.61 KB | 0644 |
|
| webcrypto.json.gz | File | 10.2 KB | 0644 |
|
| webcrypto.md | File | 47.22 KB | 0644 |
|
| webstreams.html | File | 165.16 KB | 0644 |
|
| webstreams.json.gz | File | 10.95 KB | 0644 |
|
| webstreams.md | File | 41.21 KB | 0644 |
|
| worker_threads.html | File | 169.32 KB | 0644 |
|
| worker_threads.json.gz | File | 17.33 KB | 0644 |
|
| worker_threads.md | File | 59.46 KB | 0644 |
|
| zlib.html | File | 156.29 KB | 0644 |
|
| zlib.json.gz | File | 12.86 KB | 0644 |
|
| zlib.md | File | 49 KB | 0644 |
|