encodeURI()
和 decodeURI()
是 JavaScript 中处理 URI(统一资源标识符)的两个函数。这两个函数在处理前端开发中经常用于对网址(URLs)或网页地址进行编码和解码。
encodeURI()
encodeURI()
函数用于对 URI 进行转义,以便发送给服务器。它可以将某些字符转换为对应的十六进制转义序列。这通常用于确保 URI 在传输过程中不会丢失信息或被错误解析。encodeURI()
不会对本身属于 URI 的特殊字符(如冒号、斜杠、问号和井号)进行编码。
示例
var uri = "https://example.com/search?q=你好,世界#results";
var encodedUri = encodeURI(uri);
console.log(encodedUri);
// 输出:https://example.com/search?q=%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%B8%96%E7%95%8C#results
在这个例子中,"你好,世界" 这部分中文字符被转换成了对应的 URL 编码。
decodeURI()
decodeURI()
函数则用于解码由 encodeURI()
函数编码的 URI。它可以将转义的十六进制序列转换回原始字符。
示例
var encodedUri = "https://example.com/search?q=%E4%BD%A0%E5%A5%BD%EF%BC%8C%E4%B8%96%E7%95%8C#results";
var decodedUri = decodeURI(encodedUri);
console.log(decodedUri);
// 输出:https://example.com/search?q=你好,世界#results
在这个例子中,被编码的 "你好,世界" 部分被 decodeURI()
函数成功解码回原始的中文字符。
总的来说,encodeURI()
和 decodeURI()
在前端开发中非常有用,特别是在处理包含特殊字符或非 ASCII 字符的 URIs 时。它们可以确保数据在前后端之间正确无误地传输。