php %3f,PHP
昨天看UCHome源码的时候,发现有些地方用urlencode,有些地方用rawurlencode。由于对这两个方法的差异不是很清楚,特意写了一段代码来测试。
请将下面的代码保存到一个PHP文件中:
test_encode('http://www.baidu.com?a=search&k=eclipse');
test_encode(':/?= ');
test_encode('中文');
function test_encode($s)
{
echo "urlencode('$s') = [";
var_dump(urlencode($s));
echo "]
";
echo "rawurlencode('$s') = [";
var_dump(rawurlencode($s));
echo "]
";
}
上面代码执行结果如下:
urlencode('http://www.baidu.com?a=search&k=eclipse') = [string(53) "http%3A%2F%2Fwww.baidu.com%3Fa%3Dsearch%26k%3Declipse" ]
rawurlencode('http://www.baidu.com?a=search&k=eclipse') = [string(53) "http%3A%2F%2Fwww.baidu.com%3Fa%3Dsearch%26k%3Declipse" ]
urlencode(':/?= ') = [string(19) "%3A%2F%3F%3D+%26%23" ]
rawurlencode(':/?= ') = [string(21) "%3A%2F%3F%3D%20%26%23" ]
urlencode('中文') = [string(18) "%E4%B8%AD%E6%96%87" ]
rawurlencode('中文') = [string(18) "%E4%B8%AD%E6%96%87" ]
从上面的执行结果可以看出,urlencode和rawurlencode两个方法在处理字母数字,特殊符号,中文的时候结果都是一样的,唯一的不同是对空格的处理,urlencode处理成“+”,rawurlencode处理成“%20”。
看看PHP Manual对两个函数的说明:
urlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。
rawurlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。这是在 RFC 1738 中描述的编码,是为了保护原义字符以免其被解释为特殊的 URL 定界符,同时保护 URL 格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱。
php %3f,PHP相关推荐
- Python工作笔记005---旧式字符串格式化_%5.3f的含义
JAVA技术交流QQ群:170933152 旧式字符串格式化 % 操作符也可以实现字符串格式化. 它将左边的参数作为类似 sprintf() 式的格式化字符串, 而将右边的代入, 然后返回格式化后的字 ...
- C语言基础---3.格式化输出总结---%d ,%s,%f %.3f,%m.ns 以及sprintf函数
文章目录 1.常规----格式化输出 2.特殊----格式化输出 3.sprintf-----格式化输出 1.常规----格式化输出 %d //整型输出%ld //长整型输出%o //以八进制数形式输 ...
- byte[]转String出现乱码(EFBFBD或3F)
问题: byte[]转String(以方便用split()对byte[]进行分割或其他操作)时,选择编码方式不同会导致产生一些字符乱码 UTF-8时产生EFBFBD GBK时产生3F 等等 原因: 这 ...
- C# serialport串口接收数据异常,出现很多3F的解决方法
出现3F是奇偶校验错误导致的,你可以将奇偶校验属性设置为none,至于出现短文,是由于数据接收不完整导致,你可以在读取缓存数据的时候延时个20ms就可以了 转载于:https://my.oschina ...
- 机器学习中:autopct = '%0.3f%%',代表的意思。
a = '%3.1f%%'% 1000 # 1000.0%a = '%0.3f%%'% 1000 #1000.000%a = '%1.1f%%'% 100 #100.0%a = '%6.1f%%'% ...
- python输出宽度是什么意思_python字符串格式化输出的时候类似{0:.3f}是什么意思?...
展开全部 %f 保留小数点后面六位有e69da5e6ba903231313335323631343130323136353331333431373266效数字,%.3f 保留三位小数. %e 保留小数 ...
- revit免费软件:绘制标高时如何自动排序为1F,2F,3F
revit免费软件:绘制标高时如何自动排序为1F,2F,3F?当我们绘制标高时,我们希望它能自动排序1F.2F.3F..,但实际上,我们将样板文件中的标高设置为1F,然后在新项目中绘制标高时变成1G和 ...
- NUC 11构建 ESXi 7.0.3f安装网卡驱动-V2(2022年7月升级版)
NUC 11构建 ESXi 7.0.3f安装网卡驱动 一.进入powershell 环境 windows 10 操作系统,以管理员的身份打开cmd终端,执行 c:> powershell 二.查 ...
- 存在于实数域的微观粒子3-∂f(x)/ ∂x=f(x).f(-x)
如果将神经网络理解成是存在于实数域的微观粒子,那与之对应的波动方程应该是什么? Sigmoid的表达式 让Sigmoid函数就是欲求的波动方程的解,可以由Sigmoid反向构造出与之对应的一个微分方程 ...
最新文章
- 解析针对 HTTP/2 协议的不同步攻击
- 飞鸽传书内部护眼神功
- Qbxt 模拟题 day3(am) T3 选数字 (select)(贪心)
- Glory Ex坚持发展核心竞争力,致力于让更多人走进数字资产
- 拿下阿里投资 回血的网易云音乐能成功突围吗?
- 图片压缩的另一种实现(3)
- python安装pip之后 pip命令报错解决方法
- 变量不在选择列表中_Python3中的表达式运算符
- 耐用的蓝牙耳机推荐,现在比较好的蓝牙耳机点评
- 神经网络,英文字母识别
- 16天7000dict
- MPlayer安装和使用指南(转)
- python数据分析与挖掘(二十七)--- Pandas量化--股票基础知识
- gitlab rpm包安装方法
- 一年成为Emacs高手(像神一样使用编辑器)
- typescript (TS)进阶篇 --- 内置高阶泛型工具类型(Utility Type)
- python torch学习(一)
- nbu15_克鲁勃NBU 15
- 一、我来说LuCI: LuCI官方----3. Theme and Modules
- navicat连接数据库,闲置一段时间后,再次操作,反应非常缓慢