JavaScript URL 编解码方法详解:escape、encodeURI 与 encodeURIComponent

作者:闭包旅人

时间:2026-10-25

浏览:592

本文详解JavaScript中处理URL的几种编码方法。针对页面编码不一致导致的乱码问题,分析了escape、encodeURI和encodeURIComponent的区别。重点说明escape仅适用于简单字符串且不支持URI编码,而encodeURI和encodeURIComponent分别适用于完整URL和参数编码,确保数据传输的准确性与兼容性。

文章目录

URL编码与乱码问题背景

后两种方法通过将字符串转换为UTF-8格式进行传输,有效解决了因页面编码不一致而引发的乱码问题。



例如,当发送页面与接收页面的字符集(Charset)不一致时(假设发送页为GB2312,接收页为UTF-8),若使用escape()转换中文字串,便会出现乱码现象。


JavaScript URL编解码方法详解

以下是JavaScript中对URL进行编码和解码的几种常用方法:



escape方法:该方法不对@*+/ A-Z 0-9 a-z等字符进行编码,其他非ASCII字符会被编码为%XX格式,解码时使用unescape。需要注意的是,escape方法不能用于对“统一资源标识符”(URI)进行编码,对此类场景应使用encodeURI和encodeURIComponent方法。encodeURI():该方法对! @ # $ & * ( ) = : / ; ? + ' A-Z 0-9 a-z等字符不编码,其他字符会被编码,解码时使用decodeURI()。



若希望编码更多字符(例如包含/等符号),请使用encodeURIComponent()方法。经此方法编码后的参数传递给服务器时,部分字符可能被视为无效字符,解码时使用decodeURIComponent()。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章