此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

decodeURI()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

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://newreal1.mobosoft.fun/ru/docs/JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B",
);
// "https://newreal1.mobosoft.fun/ru/docs/JavaScript_шеллы"

捕捉异常

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

// URIError: malformed URI sequence

规范

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

浏览器兼容性

参见