decodeURI()
基线 广泛可用
此功能已非常完善,适用于多种设备和浏览器版本。自 2015 年 7 月起,该功能已在各种浏览器中可用。
Learn more
查看完整兼容性
Report feedback
decodeURI() 函数解码先前由 encodeURI() 或类似例程创建的统一资源标识符 (URI)。
Try it
const uri = "https://mozilla.org/?x=шеллы";
const encoded = encodeURI(uri);
console.log(encoded);
// 预期输出: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
try {
console.log(decodeURI(encoded));
// 预期输出: "https://mozilla.org/?x=шеллы"
} catch (e) {
// 捕获格式错误的 URI
console.error(e);
}
Syntax
decodeURI(encodedURI)
Parameters
encodedURI 完整的、编码的统一资源标识符。
Return value
表示给定编码的统一资源标识符 (URI) 的未编码版本的新字符串。
Exceptions
URIError 如果 encodedURI 包含后面没有两个十六进制数字的 % ,或者转义序列未编码有效的 UTF-8 字符,则抛出。
Description
decodeURI() 是全局对象的函数属性。
decodeURI() 函数通过将 %XX 格式的每个转义序列视为一个 UTF-8 代码单元(一个字节)来解码 URI。在 UTF-8 中,第一个字节的前导 1 位的数量(可能为 0(对于 1 字节的 ASCII 字符)、2、3 或 4)表示字符中的字节数。因此,通过读取第一个转义序列, decodeURI() 可以确定要使用多少个转义序列。如果 decodeURI() 无法找到预期的序列数量,或者转义序列未编码有效的 UTF-8 字符,则会抛出 URIError 。
decodeURI() 解码所有转义序列,但如果转义序列编码以下字符之一,则转义序列将保留在输出字符串中(因为它们是 URI 语法的一部分):
; / ? : @ & = + $ , #
Examples
解码西里尔文 URL
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_шеллы"
decryptURI() 与 decryptURIComponent()
decodeURI() 假定输入是一个完整的 URI,因此它不会解码属于 URI 语法的字符。
decodeURI(
"https://developer.mozilla.org/docs/JavaScript%3A%20a_scripting_language",
);
// "https://developer.mozilla.org/docs/JavaScript%3A a_scripting_language"
decodeURIComponent(
"https://developer.mozilla.org/docs/JavaScript%3A%20a_scripting_language",
);
// "https://developer.mozilla.org/docs/JavaScript: a_scripting_language"
Catching errors
try {
const a = decodeURI("%E0%A4%A");
} catch (e) {
console.error(e);
}
// URIError: URI 序列格式错误
Specifications
Specification
ECMAScript® 2026 语言规范 # sec-decodeuri-encodeduri
Browser compatibility
Desktop
Mobile
Server
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Android 版 Firefox
Opera Android
IOS 上的 Safari
Samsung Internet
WebView Android
Deno
Node.js
decodeURI
1
12
1
7
1.1
18
4
10.1
1
1.0
4.4
1.0
0.10.0
See also
decodeURIComponent() encodeURI() encodeURIComponent()
© 2005–2024 MDN 贡献者。根据 Creative Commons Attribution-ShareAlike 许可证 v2.5 或更高版本获得许可。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI