首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >urlencode问题

urlencode问题
EN

Stack Overflow用户
提问于 2011-02-20 00:08:31
回答 5查看 756关注 0票数 3

使用urlencode时,将空格编码为+;有时将其编码为%20?我想知道哪一种是HTML的标准?

EN

回答 5

Stack Overflow用户

发布于 2011-02-20 00:15:18

都不是。查询编码是URI/URN标准的一部分,它完全取决于服务器想要结果的方式。一些人使用%-编码,这样他们就可以安全地进行分析(可读性并不重要),一些人使用+,一些人使用-(即。堆栈溢出)。

编码的原因很简单,URI/URI不允许使用空格(和其他特殊字符)。然而,该标准并没有定义它应该如何完成。

票数 3
EN

Stack Overflow用户

发布于 2011-02-20 00:16:47

URI specification要求使用Percent-Encoding对任何无效字符进行编码。由于该空格在URI中是无效的,因此需要使用%20对其进行编码。

此外,基于百分比编码但使用+而不是%20对空格进行编码的HTML 4 specified the special encoding for forms

PHP有两个不同的URI编码函数:

根据URI规范编码的

  • rawurlencode (不考虑组件上下文),根据application/x-www-form-urlencoded.

编码的and

  • urlencode
票数 1
EN

Stack Overflow用户

发布于 2011-02-20 00:17:37

urlencode将空格编码为+,而rawurlencode将其编码为%20

urlencode

这与»RFC3986编码(参见rawurlencode())的不同之处在于,由于历史原因,空格被编码为加号(+)。

根据rawurlencode的说法

返回一个字符串,其中除-_.~之外的所有非字母数字字符都已替换为百分号(%),后跟两个十六进制数字。这是»RFC 3986中描述的编码,用于防止文字字符被解释为特殊的网址分隔符,以及用于防止URL因字符转换而被传输介质损坏(如某些电子邮件系统)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5051844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档