Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌';什么是URL编码?_Url - Fatal编程技术网

谷歌';什么是URL编码?

谷歌';什么是URL编码?,url,Url,我注意到Google并没有对URL查询部分的所有特殊字符进行编码。例如: Placing this string in Google's search: !@#$%^&*() Yields this URL: https://www.google.com/#q=!%40%23%24%25^%26*() 请注意!,^,*,(、和)未编码 有些字符,如:或

我注意到Google并没有对URL查询部分的所有特殊字符进行编码。例如:

Placing this string in Google's search: !@#$%^&*()

Yields this URL: https://www.google.com/#q=!%40%23%24%25^%26*()
请注意!,^,*,(、和)未编码

有些字符,如:或<被认为是不安全的或保留的,但谷歌没有对它们进行编码

有人能解释一下谷歌为什么这么做,以及他们是否有一份参考文件,说明哪些字符被编码,哪些不被编码

谢谢你的帮助

如文件所述:

在URL中使用某些字符时,如果不首先使用,则不安全 编码的。因为Google搜索请求是使用HTTP URL发出的, 搜索请求必须遵循URL约定,包括字符 必要时进行编码

HTTP URL语法定义只有字母数字字符 特殊字符$-.+!*'(),以及保留字符;/?:@=&可以 在HTTP URL请求中用作值。自保留以来 搜索引擎使用字符来解码URL,还有一些 特殊字符用于请求搜索功能,然后是所有 用作输入参数值的非字母数字字符必须 是URL编码的

要对字符串进行URL编码,请执行以下操作:

用“+”字符替换空格字符替换每个字符 非字母数字字符,由其十六进制ASCII值表示,在 “%”字符后跟两个十六进制数字的格式。(如此 ASCII值可称为转义码。)

一些输入参数要求传递给Google search的值是双URL编码的。此要求意味着您必须连续两次对字符串应用URL编码以生成最终值


我在这里看不到与编程的直接联系。¨没有编码。我想知道,因为我正在编写一个生成谷歌URL的脚本,并希望确保我包含了正确的编码。这无关紧要。把一切都编码。无论如何,它都会被解码。或者什么也不编码,因为浏览器无论如何都会为您处理。@NiettheDarkAbsol是的,这是真的,但我想尽量缩短我的URL,因为它们是谷歌特有的。我只想对绝对必要的东西进行编码。我的一些URL包含外来字符,这使得编码的URL非常长。它们似乎不符合自己的标准。在他们的参考文档中,他们给出了这个字符串的一个例子:准入表单站点:www.stanford.edu,它应该产生这个编码结果:准入+表单+站点%3Awww.stanford.edu。然而,当我在浏览器中使用相同的字符串时,相应的谷歌URL是:-冒号永远不会出现encoded@Josh我不能证实你。因为我的编码查询字符串是
q=admission+form+site%3Awww.stanford.edu
感谢您的关注!不幸的是,我尝试了三种不同的浏览器,得到了相同的结果。