http://www.w3schools.com/tags/ref_urlencode.asp
由于URL通常包含ASCII集之外的字符,因此URL具有 要转换为有效的ASCII格式。
但是,两个空格/,%都是ASCII字符集的一部分,那么为什么要首先对它们进行编码呢?应编码哪些字符?
http://www.w3schools.com/tags/ref_urlencode.asp
由于URL通常包含ASCII集之外的字符,因此URL具有 要转换为有效的ASCII格式。
但是,两个空格/,%都是ASCII字符集的一部分,那么为什么要首先对它们进行编码呢?应编码哪些字符?
如上所述,空格在URL中无效。大多数浏览器会自动对其进行编码。然而...
您链接到的页面有一个示例,使用“试试我”部分中的“Günter”一词。如果单词“Günter”作为查询字符串参数发送,则不起作用。因为“ü”不在标准ASCII字符集中。
它意味着在可能存在非ASCII字符时使用。一个示例可能是使用数据库中的数据来创建超链接。假设代码创建了指向用户配置文件页面的链接。未编码,我的将是:
<a href="profile/?username=David Stratton">Your profile</a>
而Günter将是
<a href="profile/?username=Günter">Your profile</a>
我的,大多数浏览器都可以处理Günter的,可能不是。
编码,这些将成为
<a href="profile/?username=David%20Stratton">Your profile</a>
和
<a href="profile/?username=G%FCnter">Your profile</a>
哪些是有效的URL。
(请原谅大多数精心设计的系统都不会在这样的参数中传递用户名。这只是澄清概念的一个示例。)
应该对URL中的字符进行编码,因为某些字符具有特殊含义 URL规范,某些字符不允许,并且某些字符在所有字符集中都不可表示。
看到 这个介绍 多一点指导。
关于您提供的字符示例'/'保留用作URL中的组件分隔符,'%'用作转义字符。
某些字符(如空格)需要进行转义以确保有效的网址。一旦产生GET参数,肯定会出现很多问题。