encodeURI
是 JavaScript 中的一个用于编码统一资源标识符 (URI) 的函数。它将 URI 中的非标准字符转换为可以在 URL 中安全使用的格式。encodeURI
不会编码 ASCII 字母和数字以及特定的标点符号,如 - _ . ! ~ * ' ( )
。
encodeURI
函数接受一个字符串作为参数,并返回一个新的字符串,其中某些字符被转换为 %xx
或 %uxxxx
格式的十六进制转义序列。
encodeURI
不会编码所有特殊字符,这样可以保持 URI 的可读性。encodeURI
是 W3C 标准的一部分,被所有现代浏览器支持。encodeURI
来确保 URL 的正确性。// 原始 URI
const uri = "https://example.com/search?q=你好世界!";
// 使用 encodeURI 编码 URI
const encodedUri = encodeURI(uri);
console.log(encodedUri);
// 输出: "https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C!"
encodeURI
不会编码 #
和 ?
及其后的字符,因为这些字符在 URI 中有特殊含义。encodeURIComponent
函数,因为它会编码更多的字符,包括 &
, =
, +
, 等。如果你遇到了编码后的 URI 在服务器端解析不正确的问题,可能是因为:
encodeURIComponent
。encodeURIComponent
)// 原始查询参数
const queryParam = "你好世界!";
// 使用 encodeURIComponent 编码查询参数
const encodedQueryParam = encodeURIComponent(queryParam);
console.log(encodedQueryParam);
// 输出: "%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C!"
// 构建完整的 URL
const url = `https://example.com/search?q=${encodedQueryParam}`;
console.log(url);
// 输出: "https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C!"
通过正确使用 encodeURI
和 encodeURIComponent
,你可以确保 URI 和查询参数在客户端和服务器端之间的正确传输和解析。
领取专属 10元无门槛券
手把手带您无忧上云