当前位置: 首页 > 面试题库 >

urlencode与rawurlencode?

毛镜
2023-03-14
问题内容

如果要使用变量创建URL,则有两种选择来编码字符串。urlencode()rawurlencode()

到底有什么区别,哪个是首选?


问题答案:

这将取决于您的目的。如果与其他系统的互操作性很重要,那么rawurlencode似乎是可行的方法。一个例外是传统系统,该系统希望查询字符串遵循以+而不是%20编码的空格的表单编码样式(在这种情况下,您需要urlencode)。

rawurlencode 遵循PHP 5.3.0之前的RFC 1738,之后遵循RFC3986

返回一个字符串,其中除-_。〜外的所有非字母数字字符均已替换为百分号(%),后跟两个十六进制数字。这是»RFC
3986中描述的编码,用于保护文字字符不被解释为特殊的URL分隔符,并防止URL被字符转换的传输介质(例如某些电子邮件系统)所破坏。

请注意RFC 3986与1738。html" target="_blank">php 5.3之前的rawurlencode ~根据RFC 1738 编码了波浪号()。但是,从PHP
5.3开始,rawurlencode遵循RFC 3986,它不需要编码波浪号。

urlencode
将空格编码为加号(不像%20rawurlencode那样)

返回一个字符串,其中所有非字母数字字符(-_除外)。已由百分号(%)替换,后跟两个十六进制数字和空格,并编码为加号(+)。它的编码方式与WWW表单中发布的数据的编码方式相同,即与application/ x-www-form-urlencoded媒体类型中的方式相同。这与»RFC3986编码(请参见rawurlencode())不同,因为历史原因,空格被编码为加号(+)。

这对应于RFC 1866中 application / x-www-form-urlencoded的定义。



 类似资料:
  • 本文向大家介绍用JavaScript实现PHP的urlencode与urldecode函数,包括了用JavaScript实现PHP的urlencode与urldecode函数的使用技巧和注意事项,需要的朋友参考一下 很多朋友说JavaScript的decodeURI函数也可以实现,但有bug所有呢,下面看下下面的函数,经过测试使用暂时没什么问题,我在之前的文章说过,这个和php的urldecode

  • 我正在尝试使用urllib.urlencode对python中的词典进行urlencode编码。问题是,我必须对数组进行编码。 结果必须是: 但我得到的结果是: 我试过几种方法,但似乎没有得到正确的结果。 如果我使用对正确的查询字符串进行解码,结果如下: 但是如果我对结果进行编码,我会得到一个错误的结果。有没有办法产生预期的结果?

  • 问题内容: 我正在测试 PHP 与 Java 。 爪哇 的PHP 除了不是由Java编码并由PHP转换为%2A的“星号”字符,所有这两个函数的字符似乎都以相同的方式编码。哪种行为应该是“正确的”行为(如果有)? 注意:我也尝试过-没有运气。 问题答案: 可以在URL中使用(但也可以采用编码形式)。 RFC1738:统一资源定位符(URL)声明以下内容: 保留: […] 通常,当八位字节由字符表示并

  • 本文向大家介绍php自定义urlencode,urldecode函数实例,包括了php自定义urlencode,urldecode函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php自定义urlencode,urldecode函数。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍ASP中实现的URLEncode、URLDecode自定义函数,包括了ASP中实现的URLEncode、URLDecode自定义函数的使用技巧和注意事项,需要的朋友参考一下 在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是xml形式,由于乱码服务器端xml也解析不了或出错。于是在post前先把它编码,到服务器端再解码,这样问

  • 问题内容: 我尝试在提交之前对该字符串进行。 问题答案: 你需要将参数传递为映射或2元组序列,例如: Python 3或以上 采用: 请注意,这在通常意义上不会进行url编码(请看输出)。为此使用。