A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @夜色 中级黑马   /  2018-1-24 17:41  /  1553 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最近给学生解决一个问题后数据给用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, 下载次数: 6)

3.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马