# decode-uri-component

> A better decodeURIComponent

Latest version **0.5.0** (published 2026-06-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install decode-uri-component
pnpm add decode-uri-component
yarn add decode-uri-component
bun add decode-uri-component
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high quality score.

Warnings: low downloads; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.5.0 |
| Published | 2026-06-29 |
| First published | 2017-05-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=14.16 |
| Dependencies | 0 |
| Unpacked size | 8.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 158 |
| Author | Sam Verschueren |
| Maintainers | samverschueren |
| Keywords | decode, uri, component, decodeuricomponent, components, decoder, url |

## Links

- npm: https://www.npmjs.com/package/decode-uri-component
- Repository: https://github.com/SamVerschueren/decode-uri-component
- Homepage: https://github.com/SamVerschueren/decode-uri-component#readme
- Issues: https://github.com/SamVerschueren/decode-uri-component/issues
- npm.io page: https://npm.io/package/decode-uri-component

## Alternatives

- [base64url](https://npm.io/package/base64url.md) — 6.1M weekly downloads
- [get-installed-path](https://npm.io/package/get-installed-path.md) — 502.9K weekly downloads
- [@uppy/url](https://npm.io/package/@uppy/url.md) — 185.8K weekly downloads
- [@d3fc/d3fc-shape](https://npm.io/package/@d3fc/d3fc-shape.md) — 16.2K weekly downloads
- [localizer](https://npm.io/package/localizer.md) — 226 weekly downloads

## Recent versions

- 0.5.0 (latest) — 2026-06-29
- 0.4.1 — 2022-12-19
- 0.4.0 — 2022-12-15
- 0.3.0 — 2022-12-13
- 0.2.2 — 2022-12-01
- 0.2.1 — 2022-12-01
- 0.2.0 — 2017-06-28
- 0.1.0 — 2017-05-19

## README

# decode-uri-component

![CI](https://github.com/SamVerschueren/decode-uri-component/workflows/CI/badge.svg) [![Coverage Status](https://coveralls.io/repos/SamVerschueren/decode-uri-component/badge.svg?branch=master&service=github)](https://coveralls.io/github/SamVerschueren/decode-uri-component?branch=master)

> A better [decodeURIComponent](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent)


## Why?

- Converts the [BOM](https://en.wikipedia.org/wiki/Byte_order_mark) to a [replacement character](https://en.wikipedia.org/wiki/Specials_(Unicode_block)#Replacement_character) `�`.
- Does not throw with invalid encoded input.
- Decodes as much of the string as possible.


## Install

```
$ npm install --save decode-uri-component
```


## Usage

```js
import decodeUriComponent from 'decode-uri-component';

decodeUriComponent('%25');
//=> '%'

decodeUriComponent('%');
//=> '%'

decodeUriComponent('st%C3%A5le');
//=> 'ståle'

decodeUriComponent('%st%C3%A5le%');
//=> '%ståle%'

decodeUriComponent('%%7Bst%C3%A5le%7D%');
//=> '%{ståle}%'

decodeUriComponent('%7B%ab%%7C%de%%7D');
//=> '{%ab%|%de%}'

decodeUriComponent('%FE%FF');
//=> '\uFFFD\uFFFD'

decodeUriComponent('%C2');
//=> '\uFFFD'

decodeUriComponent('%C2%B5');
//=> 'µ'
```


## API

### decodeUriComponent(encodedURI)

#### encodedURI

Type: `string`

An encoded component of a Uniform Resource Identifier.


## License

MIT © [Sam Verschueren](https://github.com/SamVerschueren)


---

<div align="center">
	<b>
		<a href="https://tidelift.com/subscription/pkg/npm-decode-uri-component?utm_source=npm-decode-uri-component&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
	</b>
	<br>
	<sub>
		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
	</sub>
</div>

---
_Source: https://npm.io/package/decode-uri-component · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
