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

浏览器兼容性

BCD tables only load in the browser

参见