decodeURI()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

decodeURI() 函数能解码由encodeURI 创建或其他流程得到的统一资源标识符(URI)。

尝试一下

const uri = "https://mozilla.org/?x=шеллы";
const encoded = encodeURI(uri);
console.log(encoded);
// Expected output: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"

try {
  console.log(decodeURI(encoded));
  // Expected output: "https://mozilla.org/?x=шеллы"
} catch (e) {
  // Catches a malformed URI
  console.error(e);
}

语法

decodeURI(encodedURI)

参数

encodedURI

一个完整的编码过的 URI

返回值

返回一个给定编码统一资源标识符 (URI) 的未编码版本的新字符串。

异常

encodedURI 包含无效字符序列时,引发URIError(“格式错误的 URI 序列”)异常。

描述

将已编码 URI 中所有能识别的转义序列转换成原字符,但不能解码那些不会被 encodeURI 编码的内容(例如 "#")。

示例

解码一个西里尔字母(Cyrillic)URL

js
decodeURI(
  "https://developer.mozilla.org/ru/docs/JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B",
);
// "https://developer.mozilla.org/ru/docs/JavaScript_шеллы"

捕捉异常

try {
  var a = decodeURI('%E0%A4%A');
} catch(e) {
  console.error(e);
}

// URIError: malformed URI sequence

规范

Specification
ECMAScript® 2025 Language Specification
# sec-decodeuri-encodeduri

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
decodeURI

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见