当前位置: 首页 > article >正文

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.kler.cn/news/328963.html

相关文章:

  • 安全服务面试
  • 【MySQL】数据库基础知识
  • 云计算Openstack Cinder
  • 教程:在Linux上启动、运行、杀掉和管理项目程序
  • Json-Rpc框架(Muduo库快速上手)
  • 测试用例的举例
  • 怎样过好国庆节
  • RM数据库研究(一)
  • ROM、RAM 和 Flash 的区别
  • 【word脚注】双栏设置word脚注,脚注仅位于左栏,右栏不留白
  • Vue的逻辑和代码集
  • Kafka快速实战与基本原理详解
  • RabbitMQ的高级特性-事务
  • esp32 命令行 编译 下载 调试
  • 从《GTA5》的反外挂斗争看网络安全的重要性
  • 【漏洞复现】数字通云平台智慧政务 login 存在登录绕过漏洞
  • 停止模式下USART为什么可以唤醒MCU?
  • 腾讯云linux服务器修改root用户登录密码操作步骤
  • 【递归】11. leetcode 129 求根节点到叶节点数字之和
  • 横排文字、图层蒙版-2(2024年09月30日)
  • 一次金融APP的解密历程
  • SprakSQL-Catalog
  • 【React】入门Day02 —— 表单控制、组件通信、副作用管理与自定义 Hook
  • 9.24 数据结构-栈、队列总结
  • 蓝桥杯—STM32G431RBT6(IIC通信--EEPROM(AT24C02)存储器进行通信)
  • 【深度学习】05-Rnn循环神经网络-04- RNN中的权重和偏置共享指的是什么?/ 为什么要共享/以及怎么进行记忆传递的?
  • Python | Leetcode Python题解之第441题排列硬币
  • Springboot结合RabbitMQ
  • 经典文献阅读之--Stereo-NEC(全新双目VIO初始化)
  • web前端-CSS引入方式