Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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
Javascript 为什么要对url进行编码,或者对哪些字符进行编码_Javascript_Asp.net_Html_Web - Fatal编程技术网

Javascript 为什么要对url进行编码,或者对哪些字符进行编码

Javascript 为什么要对url进行编码,或者对哪些字符进行编码,javascript,asp.net,html,web,Javascript,Asp.net,Html,Web,由于URL通常包含ASCII集合之外的字符,因此URL具有 要转换为有效的ASCII格式 但是空格、/、%都是ASCII字符集的一部分,那么为什么要首先对它们进行编码呢?应该对哪些字符进行编码?给您: 这是我找到的最好的解释,对我很有帮助。某些字符(如空格)需要转义以确保URL有效。生成GET参数时肯定会出现这种情况。如前所述,空格在URL中无效。大多数浏览器都会自动对它们进行编码。然而 您链接到的页面中有一个例子,在“Try me”部分使用了“Günter”一词。如果单词“Günter”作为

由于URL通常包含ASCII集合之外的字符,因此URL具有 要转换为有效的ASCII格式

但是空格、/、%都是ASCII字符集的一部分,那么为什么要首先对它们进行编码呢?应该对哪些字符进行编码?

给您:


这是我找到的最好的解释,对我很有帮助。

某些字符(如空格)需要转义以确保URL有效。生成GET参数时肯定会出现这种情况。

如前所述,空格在URL中无效。大多数浏览器都会自动对它们进行编码。然而

您链接到的页面中有一个例子,在“Try me”部分使用了“Günter”一词。如果单词“Günter”作为查询字符串参数发送,它将无法工作。因为“ü”不在标准ASCII字符集中

这意味着在可能存在非ASCII字符时使用。例如,使用数据库中的数据创建超链接。假设代码创建了一个指向用户配置文件页面的链接。未编码的,我的将是:

<a href="profile/?username=David Stratton">Your profile</a>

而甘特的

<a href="profile/?username=Günter">Your profile</a>

我的,大多数浏览器都能处理。甘特的,也许不是

编码后,这些将成为

<a href="profile/?username=David%20Stratton">Your profile</a>


哪些是有效的URL


(请原谅,大多数设计良好的系统都不会在这样的参数中传递用户名。这只是澄清概念的一个示例。)

URL中的字符应该进行编码,因为根据,有些字符是不允许的,有些字符不能在所有字符集中表示

请参阅以获取更多指导


关于您提供的字符示例,“/”保留用作URL中的组件分隔符,“%”用作转义字符

例如UTF-8字符,或来自不同字符集的任何字符。ASCII几乎是最小的字符范围。我不是舒尔,但我认为每个字符都应该进行编码,可能有不同的含义(例如&和空格)。不要使用w3schools.com,它与w3c无关,而且经常出错。请不要只是说“它不会工作”。另一方面,如果出现问题,请至少解释一下它的功能。
?q=Günter
在Chrome中对我来说很好“this intro”链接非常棒,可以解释一切!!
<a href="profile/?username=G%FCnter">Your profile</a>