php的urlencode和rawurlencode区别

urlencode和rawurlencode都是用于对URL进行编码的函数,但它们在处理方式和应用场景上存在明显的区别。以下是关于这两个函数的详细比较:

一、定义与标准

  1. urlencode:基于rawurlencode标准,但有略微的不同,它定义在rfc1866,这个rfc属于html标准的一部分,编码方式和application/x-www-form-urlencoded MIME编码方式一致。
  2. rawurlencode:也叫做百分号编码(Percent-encoding),定义在RFC3986上。RFC3986描述了如何定义一个URL,该标准相较于urlencode更为严格和广泛地被接受为URL编码的标准做法。此外,rawurlencode还遵守94年国际标准备忘录RFC 1738,实现的是传统做法。

二、编码方式

  1. 空格处理

    • urlencode:会将空格编码为加号(+)。
    • rawurlencode:会将空格编码为%20。这更符合URL编码的国际标准。
  2. 特殊字符处理

    • urlencode:主要对特殊字符进行编码,处理的是query string的编码。
    • rawurlencode:会对除了字母、数字和-_.~以外的所有字符进行编码,包括特殊字符如空格、斜杠等,处理的是URL编码。

三、应用场景

  1. urlencode:适用于需要对query string中的特殊字符进行编码的场景,因为某些服务器或应用程序可能期望空格被编码为加号(+)。
  2. rawurlencode:更适用于对整个URL进行编码的场景,包括空格和特殊字符。它遵循更严格的URL编码标准,因此更有可能与各种服务器和应用程序兼容。

四、注意事项

  1. 在选择使用哪个函数时,需要考虑目标服务器或应用程序对URL编码的具体要求。
  2. 在某些情况下,如果服务器只接受%20编码的空格,则应使用rawurlencode函数。
  3. 由于urlencode和rawurlencode在处理空格和特殊字符时存在差异,因此在编写涉及URL编码的代码时,需要仔细选择和使用这两个函数。

综上所述,urlencode和rawurlencode在定义与标准、编码方式以及应用场景等方面都存在明显的区别。在选择使用哪个函数时,需要根据具体需求和目标服务器或应用程序的要求进行决策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/888805.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu双系统分区划分

EFI系统分区(Windows):自Windows 8起,UEFI模式下的BIOS使用该分区。简单来说,它用于存储已安装系统的EFI引导程序。此分区在资源管理器中无法查看,因为它没有驱动器号,但它必须存在,…

前端登录页面验证码

首先&#xff0c;在el-form-item里有两个div&#xff0c;各占一半&#xff0c;左边填验证码&#xff0c;右边生成验证码 <el-form-item prop"code"><div style"display: flex " prop"code"><el-input placeholder"请输入验证…

[Offsec Lab] ICMP Monitorr-RCE+hping3权限提升

信息收集 IP AddressOpening Ports192.168.52.218TCP:22,80 $ nmap -p- 192.168.52.218 --min-rate 1000 -sC -sV -Pn PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 de:b5:23:89:bb:9f:d4:1…

数据校验的总结

业务层进行复杂检查 简单校验交给Controller校验&#xff0c;能流到业务的层的数据就是基本合法 引入依赖&#xff1a;spring-boot-starter-validation 能标注的所有注解在这两个地方看 jakarta.validation.constraints、 org.hibernate.validator.constraints 使用步骤…

Web APIs——Dom获取属性操作

1.变量声明 1.1以后声明变量我们优先使用哪个&#xff1f; const 有了变量先给const&#xff0c;如果发现它后面是要被修改的&#xff0c;再改为let 1.2 为什么const声明的对象可以修改里面的属性&#xff1f; 因为对象是引用类型&#xff0c;里面存储的是地址&#x…

2024 ciscn WP

一、MISC 1.火锅链观光打卡 打开后连接自己的钱包&#xff0c;然后点击开始游戏&#xff0c;答题八次后点击获取NFT&#xff0c;得到有flag的图片 没什么多说的&#xff0c;知识问答题 兑换 NFT Flag{y0u_ar3_hotpot_K1ng} 2.Power Trajectory Diagram 方法1&#xff1a; 使用p…

《Programming from the Ground Up》阅读笔记:p147-p180

《Programming from the Ground Up》学习第9天&#xff0c;p147-p180总结&#xff0c;总计34页。 一、技术总结 1.Physical memeory p152, Physical memory refers to the actual RAM chips inside your computer and what they contain. 物理地址指的RAM&#xff0c;即我们…

库函数相关(上一篇补充)

一、创建自己的头文件 在当前目录下创建一个my_head.h将这个文件移动到/usr/include目录 #ifndef __MY_HEAD_H__ #define __MY_HEAD_H__#include <stdio.h> #include <errno.h> #include <string.h>#define PRINT_ERR(s) do{\printf("%s %s %d\n&quo…

minio简单使用

文章目录 简介官方地址Linux下载安装安装服务启动关闭帮助命令 java开发minio依赖包新建项目pom配置文件配置类Service测试类运行测试 Api使用前言针对桶的操作查看某个桶是否存在创建一个桶返回桶列表删除一个桶 针对文件的操作上传文件到桶中(本地文件上传)上传文件到桶中(基…

猴子吃桃-C语言

1.问题&#xff1a; 猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个。 第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时&#xff0c;见只剩下一个…

【学习笔记】一种使用多项式快速计算 sin 和 cos 近似值的方法

一种使用多项式快速计算 sin 和 cos 近似值的方法 在嵌入式开发、游戏开发或其他需要快速数学计算的领域&#xff0c;sin 和 cos 函数的计算时间可能会影响程序的整体性能。特别是在对时间敏感、精度要求不高的场景中&#xff0c;传统的 sin 和 cos 函数由于依赖复杂的数值方法…

【UE】简单介绍“Extra Win Function”插件的功能

“Extra Win Function”插件包含32个C类封住成的蓝图节点供用户使用&#xff0c;下面简单介绍19个可能常用的节点的功能。 1. “Is Internet Available” 检查是否可接入互联网 2. “Get Device Platform” 获取设备平台名称 3. “Get Android Device RAMSize” 获取RAM 大小 …

【Java SE基础回顾】看这篇就够了!

JavaSE复习 参考视频&#xff1a;【狂神说Java】JavaSE阶段回顾总结 简单的就不讲了&#xff0c;比如什么break和continue区别&#xff0c;甚至一些什么什么继承封装多态的概念等等。 主要写一些Java特有的&#xff0c;重点的基础知识。主要还是例子和代码更多&#xff0c;更有…

Android Preference的使用以及解析

简单使用 values.arrays.xml <?xml version"1.0" encoding"utf-8"?> <resources><string-array name"list_entries"><item>Option 1</item><item>Option 2</item><item>Option 3</item&…

衡石分析平台系统管理手册-智能运维之系统设置

系统设置​ HENGSHI 系统设置中展示了系统运行时的一些参数&#xff0c;包括主程序相关信息&#xff0c;Base URL、HTTP 代理、图表数据缓存周期、数据集缓存大小、租户引擎等相关信息。 主程序​ 系统设置中展示了主程序相关信息&#xff0c;这些信息是系统自动生成的&#…

Linux 之 Linux应用编程概念、文件IO、标准IO

Linux应用编程概念、文件IO、标准IO 学习任务&#xff1a; 1、 学习Linux 应用开发概念&#xff0c;什么是系统调用&#xff0c;什么是库函数 2、 学习文件IO&#xff1a;包括 read、write、open、close、lseek 3、 深入文件IO&#xff1a;错误处理、exit 等 4、 学习标准IO&a…

TCP四次挥手过程详解

TCP四次挥手全过程 有几点需要澄清&#xff1a; 1.首先&#xff0c;tcp四次挥手只有主动和被动方之分&#xff0c;没有客户端和服务端的概念 2.其次&#xff0c;发送报文段是tcp协议栈的行为&#xff0c;用户态调用close会陷入到内核态 3.再者&#xff0c;图中的情况前提是双…

什么是PLM系统?PLM系统对制造业起到哪些作用?三品PLM系统对汽车制造业意义

在当今竞争激烈的制造业环境中&#xff0c;企业面临着来自市场、技术、客户需求等多方面的挑战。为了应对这些挑战&#xff0c;许多制造企业纷纷引入产品生命周期管理PLM系统&#xff0c;以实现更高效、更灵活的产品全生命周期管理。PLM系统以其独特的优势&#xff0c;在优化产…

【RAG论文精读3】RAG论文综述1(2312.10997)-第1部分

更多AI知识点总结见我的专栏&#xff1a;【AI知识点】 AI论文精读、项目和一些个人思考见我另一专栏&#xff1a;【AI修炼之路】 有什么问题、批评和建议都非常欢迎交流&#xff0c;三人行必有我师焉&#x1f601; 简介 论文中英文名 Retrieval-Augmented Generation for Lar…

解压缩软件哪个好?不同场景下的最佳选择

解压缩软件在日常工作与生活中发挥着至关重要的作用&#xff0c;从简单的文件解压到处理大型项目&#xff0c;选择一款适合自己的解压缩软件能够大幅提高工作效率。 面对众多解压缩工具&#xff0c;如WinRAR、7-Zip、解压专家、PeaZip等&#xff0c;如何根据不同的使用场景选择…