Big update!Introducing GitHub Bot Commands. Learn more
Socket
Log inBook a demo

whatwg-encoding

Package Overview
Dependencies
1
Maintainers
6
Versions
7
Issues
File Explorer

Advanced tools

whatwg-encoding

Decode strings according to the WHATWG Encoding Standard

    2.0.0latest

Version published
Maintainers
6
Weekly downloads
15,943,027
decreased by-12.76%

Weekly downloads

Changelog

Source

2.0.0

Raised minimum supported Node.js version to v12.

Updated iconv-lite from v0.4.24 to v0.6.3; see their changelog.

Updated docs to use Uint8Array instead of Buffer, since we don't depend on any Buffer-specific APIs.

Readme

Source

Decode According to the WHATWG Encoding Standard

This package provides a thin layer on top of iconv-lite which makes it expose some of the same primitives as the Encoding Standard.

const whatwgEncoding = require("whatwg-encoding"); console.assert(whatwgEncoding.labelToName("latin1") === "windows-1252"); console.assert(whatwgEncoding.labelToName(" CYRILLic ") === "ISO-8859-5"); console.assert(whatwgEncoding.isSupported("IBM866") === true); // Not supported by the Encoding Standard console.assert(whatwgEncoding.isSupported("UTF-32") === false); // In the Encoding Standard, but this package can't decode it console.assert(whatwgEncoding.isSupported("x-mac-cyrillic") === false); console.assert(whatwgEncoding.getBOMEncoding(new Uint8Array([0xFE, 0xFF])) === "UTF-16BE"); console.assert(whatwgEncoding.getBOMEncoding(new Uint8Array([0x48, 0x69])) === null); console.assert(whatwgEncoding.decode(new Uint8Array([0x48, 0x69]), "UTF-8") === "Hi");

API

  • decode(uint8Array, fallbackEncodingName): performs the decode algorithm (in which any BOM will override the passed fallback encoding), and returns the resulting string
  • labelToName(label): performs the get an encoding algorithm and returns the resulting encoding's name, or null for failure
  • isSupported(name): returns whether the encoding is one of the encodings of the Encoding Standard, and is an encoding that this package can decode (via iconv-lite)
  • getBOMEncoding(uint8Array): sniffs the first 2–3 bytes of the supplied Uint8Array, returning one of the encoding names "UTF-8", "UTF-16LE", or "UTF-16BE" if the appropriate BOM is present, or null if no BOM is present

Unsupported encodings

Since we rely on iconv-lite, we are limited to support only the encodings that they support. Currently we are missing support for:

  • ISO-2022-JP
  • ISO-8859-8-I
  • replacement
  • x-mac-cyrillic
  • x-user-defined

Passing these encoding names will return false when calling isSupported, and passing any of the possible labels for these encodings to labelToName will return null.

Credits

This package was originally based on the excellent work of @nicolashenry, in jsdom. It has since been pulled out into this separate package.

Alternatives

If you are looking for a JavaScript implementation of the Encoding Standard's TextEncoder and TextDecoder APIs, you'll want @inexorabletash's text-encoding package. Node.js also has them built-in.

Keywords

FAQs

What is whatwg-encoding?

Decode strings according to the WHATWG Encoding Standard

Is whatwg-encoding popular?

The npm package whatwg-encoding receives a total of 12,736,161 weekly downloads. As such, whatwg-encoding popularity was classified as popular.

Is whatwg-encoding well maintained?

We found that whatwg-encoding demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.It has 6 open source maintainers collaborating on the project.

Last updated on 12 Sep 2021

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc