Security News
The Push to Ban Ransom Payments Is Gaining Momentum
Ransomware costs victims an estimated $30 billion per year and has gotten so out of control that global support for banning payments is gaining momentum.
string_decoder
Advanced tools
Package description
The string_decoder npm package is used to decode buffer objects into strings in a manner that preserves encoded multi-byte UTF-8 and UTF-16 characters. It is particularly useful when dealing with streams of data that may contain such characters.
Decoding Buffers to Strings
This feature allows for the conversion of buffer objects into strings, ensuring that multi-byte characters are not improperly split at the end of a buffer.
{"const { StringDecoder } = require('string_decoder'); const decoder = new StringDecoder('utf8'); const buffer = Buffer.from([0xE2, 0x82, 0xAC]); console.log(decoder.write(buffer)); // Outputs: '€'"}
Handling Incomplete Multi-byte Characters
This feature is useful when buffers are received in chunks and multi-byte characters are spread across multiple chunks. The StringDecoder ensures that these characters are not converted until the complete character is received.
{"const { StringDecoder } = require('string_decoder'); const decoder = new StringDecoder('utf8'); const buffers = [Buffer.from([0xE2]), Buffer.from([0x82]), Buffer.from([0xAC])]; let result = ''; buffers.forEach((buffer) => { result += decoder.write(buffer); }); result += decoder.end(); console.log(result); // Outputs: '€'"}
iconv-lite is a pure JavaScript implementation of character encoding conversion. It supports many different encodings and is more versatile than string_decoder, which only supports UTF-8, UTF-16LE/BE, and Base64. However, string_decoder is a built-in module and may be preferred for its simplicity when only these encodings are needed.
The buffer package on npm is a node.js core module for binary data manipulation. It can be used to handle binary data directly, but it does not offer the same convenience functions for decoding multi-byte characters as string_decoder does.
Readme
Node-core v7.0.0 string_decoder for userland
npm install --save string_decoder
Node-core string_decoderstring_decoder for userland
This package is a mirror of the string_decoder implementation in Node-core.
Full documentation may be found on the Node.js website.
As of version 1.0.0 string_decoder uses semantic versioning.
Previous version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10.
The build/ directory contains a build script that will scrape the source from the nodejs/node repo given a specific Node version.
FAQs
The string_decoder module from Node core
We found that string_decoder demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Ransomware costs victims an estimated $30 billion per year and has gotten so out of control that global support for banning payments is gaining momentum.
Application Security
New SEC disclosure rules aim to enforce timely cyber incident reporting, but fear of job loss and inadequate resources lead to significant underreporting.
Security News
The Python Software Foundation has secured a 5-year sponsorship from Fastly that supports PSF's activities and events, most notably the security and reliability of the Python Package Index (PyPI).