黑马程序员技术交流社区

标题: urlencode和rawurlencode的区别 [打印本页]

作者: @夜色    时间: 2018-1-24 17:41
标题: urlencode和rawurlencode的区别
最近给学生解决一个问题后数据给用js回写到页面上发现空格都变成了一个加号

经排查,数据是用urlencode进行处理后,空格都会变成“+”,js处理后“+”不能变回空格

查看文档发现
返回字符串,此字符串中除了    -_.    之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW    表单 POST 数据的编码方式是一样的,同时与    application/x-www-form-urlencoded    的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与    RFC1738 编码(参见     rawurlencode()不同。

试着用rawurlencode处理,发现“+”变成了 “%20“

用js处理后空格能正常显示


总结:
1、比较明显的区别是
urlencode 将空格转为+
rawurlencode 将空格转化为%20


2、编码处理
urlencode    — 编码 URL 字符串
rawurlencode — 按照 RFC 1738 对 URL 进行编码



3.png (16.49 KB, 下载次数: 7)

3.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2