urlencode进行转换后 为什么空格是+号 不是%20

 我来答
动植物世界
高粉答主

2020-02-03 · 原创动物解说创作者(原创、原创、原创) 每天都趴网看各位的评...
动植物世界
采纳数:235 获赞数:371937

向TA提问 私信TA
展开全部

可以看看PHP的函数 urlencode() 和 rawurlencode() 函数的实现方式,第二个是raw转换,会把对应的空格更换成 %20 的编码方式。

%20 是空格的 URL 字符编码

[ol][*] [*]$new_true_url = iconv(\'gbk\',\'utf-8\',$true_url);

[*]$down_true_url =??urlencode($new_true_url);

[*]$down_true_url = str_replace(\"%3A%2F%2F\", \"://\", $down_tr。

使用编码函数就可以将特定字符转换成规定的字符编码,包括空格等。解码函数功能刚好相反。参数是需要处理的字符串,返回值是处理好的字符串。不过这些函数作用都有差异,详细内容可以自己查看资料。

扩展资料:

编码原理:

将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。

比如:

空格ASCII码是32,对应16进制是20,那么urlencode编码结果是:%20,但在新标准中空格对应的是+,见RFC-1738

比如:

中ASCII码是-10544,对应的16进制是D6D0,那么urlencode编码结果是:%D6%D0。

参考资料来源:百度百科-urlencode



帐号已注销
2020-01-22 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

可以看看PHP的函数 urlencode() 和 rawurlencode() 函数的实现方式,第二个是raw转换,会把对应的空格更换成 %20 的编码方式。

%20 是空格的 URL 字符编码。

[ol][*] [*]$new_true_url = iconv(\'gbk\',\'utf-8\',$true_url);

[*]$down_true_url =??urlencode($new_true_url);

[*]$down_true_url = str_replace(\"%3A%2F%2F\", \"://\", $down_tr。

使用编码函数就可以将特定字符转换成规定的字符编码,包括空格等。解码函数功能刚好相反。参数是需要处理的字符串,返回值是处理好的字符串。不过这些函数作用都有差异,详细内容可以自己查看资料。

扩展资料:

本函数将字符串以URL编码。例如空格就会变成加号。Homepage 中 form 资料传送就是用 urlencode 编码后再送出。

统一资源标识符(URI)所允许的字符分作保留与未保留,保留字符是那些具有特殊含义的字符。例如,斜线字符用于URL (或者更一般的, URI)不同部分的分界符,未保留字符没有这些特殊含义。百分号编码(Percent-encoding)把保留字符表示为特殊字符序列。上述情形随URI与URI的不同版本规格会有轻微的变化。

参考资料来源:百度百科-urlencode

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyz810
推荐于2017-10-04 · 知道合伙人互联网行家
lyz810
知道合伙人互联网行家
采纳数:7531 获赞数:31778
前端开发工程师

向TA提问 私信TA
展开全部

根据官方文档:

string urlencode(string $str)

此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。

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


解决方法:

使用rawurlencode进行编码

string rawurlencode(string $str)

根据 RFC 3986编码指定的字符。 

返回字符串,此字符串中除了-_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。这是在RFC 3986 中描述的编码,是为了保护原义字符以免其被解释为特殊的URL定界符,同时保护 URL格式以免其被传输媒体(像一些邮件系统)使用字符转换时弄乱。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文江博客
2014-04-13 · TA获得超过257个赞
知道小有建树答主
回答量:569
采纳率:50%
帮助的人:365万
展开全部
搜索关键词的时候,会将空格转换为加号,这是程序设定的,多条件搜索
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kyle_x_y
2014-04-14 · TA获得超过183个赞
知道小有建树答主
回答量:134
采纳率:66%
帮助的人:84.9万
展开全部
urlencode 将空格转换成+号
rowurlencode 将空格转换成%20
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式