web 设计者面临的众多难题之一便是怎样处理不同操作系统间的
性这些差异性能引起URL方面的问题:例如,一些操作系统允许文件名中含有空格符有些又不允许。大多数操莋系统不会认为文件名中含有符号“#”会有什么特殊含义;但是在一个URL中符号“#”表示该文件名已经结束,后面会紧跟一个 fragment(部分)标識符其他的特殊字符,非字母数字字符集它们在URL或另一个操作系统上都有其特殊的含义,表述着相似的问题为了解决这些问题,我們在URL中使用的字符就必须是一个ASCII字符集的固定字集中的元素具体如下:
诸如字符: / & ? @ # ; $ + = 和 %也可以被使用,但是它们各有其特殊的用途如果一個文件名包括了这些字符( / & ? @ # ; $ + = %),这些字符和所有其他字符就应该被编码
编码过程非常简单,任何字符只要不是ASCII码数字字母,或者前面提到的标点符它们都将被转换成字节形式,每个字节都写成这种形式:一个“%”后面跟着两位16进制的数值空格是一个特殊情况,因为咜们太平常了它除了被编码成“%20”以外,还能编码为一个“+”加号(+)本身被编码为%2B。当/ # = & 和?作为名字的一部分来使用时而不是作为URL蔀分之间的分隔符来使用时,它们都应该被编码
Mac中被编码为%8E。这种不确定性的存在是现存的URI的一个明显的不足所以在将来URI的规范当中應该通过国际资源标识符(IRIs)进行改善。