escape()

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

注意: escape() 是浏览器实现的非标准函数,仅为跨引擎兼容性而标准化。它并非所有 JavaScript 引擎都必须实现,并且可能无法在所有地方都工作。如果可能,请使用 encodeURIComponent()encodeURI()

escape() 函数会计算一个新字符串,其中某些字符已被十六进制转义序列替换。

语法

js
escape(str)

参数

str

要编码的字符串。

返回值

一个新字符串,其中某些字符已被转义。

描述

escape() 是全局对象的一个函数属性。

escape() 函数将所有字符替换为转义序列,除了 ASCII 单词字符(A-Z、a-z、0-9、_)和 @\*_+-./。字符通过 UTF-16 码元进行转义。如果码元的值小于 256,则以 %XX 格式的两位十六进制数表示,必要时左侧用 0 填充。否则,它以 %uXXXX 格式的四位十六进制数表示,必要时左侧用 0 填充。

注意: 此函数主要用于百分号编码,并部分基于 RFC 1738 中的转义格式。此转义格式不是字符串字面量中的转义序列。您可以将 %XX 替换为 \xXX,将 %uXXXX 替换为 \uXXXX 以获得包含实际字符串字面量转义序列的字符串。

示例

使用 escape()

js
escape("abc123"); // "abc123"
escape("äöü"); // "%E4%F6%FC"
escape("ć"); // "%u0107"

// special characters
escape("@*_+-./"); // "@*_+-./"

规范

规范
ECMAScript® 2026 语言规范
# sec-escape-string

浏览器兼容性

另见