【JavaScript编程】encodeURI和encodeURIComponent的区别

一、encodeURI

encodeURI函数主要用于编码整个URL。当URL中包含非ASCII字符、空格或其他在URL中有特殊意义的字符时,可以使用encodeURI进行编码。下面是一个使用encodeURI的例子:

javascript 复制代码
// 假设有一个URL
var url = "https://www.example.com/index.html?name=John Doe";
// 使用encodeURI进行编码
var encodedUrl = encodeURI(url);
console.log(encodedUrl); // 输出编码后的URL:https://www.example.com/index.html?name=John%20Doe

在这个例子中,encodeURI会将URL中的非ASCII字符、空格等进行编码,但URL中的元字符(如冒号(:)、斜杠(/)、问号(?)等)不会被编码。

二、encodeURIComponent

encodeURIComponent函数主要用于编码URL的某个特定部分,如查询参数或路径段。它会编码所有的非字母数字字符,包括URL中的元字符。如果你想编码URL的一部分,而不是整个URL,应该使用encodeURIComponent。下面是一个使用encodeURIComponent的例子:

javascript 复制代码
// 假设有一个URL的一部分
var partOfUrl = "/index.html?name=John Doe";
// 使用encodeURIComponent进行编码
var encodedPartOfUrl = encodeURIComponent(partOfUrl);
console.log(encodedPartOfUrl); // 输出编码后的URL部分:%2Findex.html%3Fname%3DJohn%20Doe

在这个例子中,encodeURIComponent会将URL部分中的所有非字母数字字符进行编码,包括URL中的元字符。

总的来说,选择encodeURI还是encodeURIComponent取决于你的具体需求。如果你需要编码整个URL,那么你应该使用encodeURI。如果你只需要编码URL的一部分,那么你应该使用encodeURIComponent

三、解码

  1. decodeURI

    decodeURI函数用于解码整个URL。如果你之前使用了encodeURI对一个URL进行了编码,那么你可以使用decodeURI来将其解码回原始状态。

  2. decodeURIComponent

    decodeURIComponent函数用于解码URL的某个特定部分,如查询参数或路径段。如果你之前使用了encodeURIComponent对这些部分进行了编码,那么你可以使用decodeURIComponent来将其解码回原始状态。

相关推荐
QGC二次开发22 天前
Qt:图片文字转base64程序
开发语言·c++·qt·数据可视化·base64·编码
Heaven6451 个月前
1.7 编码与调制
计算机网络·编码·调制
Android技术栈3 个月前
鸿蒙(API 12 Beta3版)【使用ImageSource完成图片解码】图片开发指导
harmonyos·arkts·鸿蒙·媒体·openharmony·图片·解码
Android技术栈3 个月前
鸿蒙(API 12 Beta3版)【HDR Vivid视频录制】 音视频编码
华为·音视频·harmonyos·媒体·openharmony·编码·鸿蒙开发
小堃学编程3 个月前
Redis远程字典服务器 —— string类型详解
redis·缓存·编码·命令
Android技术栈3 个月前
鸿蒙(API 12 Beta3版)【时域可分层视频编码】 音视频编码
音视频·harmonyos·鸿蒙·鸿蒙系统·媒体·openharmony·编码
亿牛云爬虫专家3 个月前
FFmpeg 在爬虫中的应用案例:流数据解码详解
爬虫·ffmpeg·音视频·流数据·爬虫代理·代理ip·解码
图王大胜3 个月前
Android APP 音视频(01)MediaCodec解码H264码流
android·音视频·解码·mediacodec·h264解码
开心小老虎5 个月前
计算机编码以及URL转码
编码·url转码
心碎烤肠5 个月前
计算机组成原理历年考研真题对应知识点(数制与编码)
考研·编码·数制