聊聊url中的特殊字符

我们平常访问网页的时候,都是在访问一个个的网页URL,但是我们可能没有关注过这些URL,其实这里面还是有很大学问的。
正常情况下,URL只能使用英文字母、数字和某些标点符号,其他的字符是不允许出现在 URL里面的。比如,最常见的 URL就是百度的网址:“http://www.baidu.com”,但是没有希腊字母的网址“http://www.aβγ.com"。这是因为网络标准RFC 1738做了硬性规定:

“…Only alphanumerics [0-9a-zA-Z], the special characters “$-_.+!*’(),” [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL.”

“只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*’(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。”

平常我们在 URL中传递一些参数时,大概率会有一些特殊字符或者中文参数或URL地址,一般浏览器就会对这些特殊的字符进行处理,否则在服务器后台处理的时候就会出现错误。这些特殊符号在URL中是不能直接传递的,只能传递经过编码后的字符,在服务器后台在进行解码处理。

编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如空格的编码值是"%20"。下表中列出了一些URL特殊符号及编码。
在这里插入图片描述
下面是C++的URL编码实现以及在 Linux下的输出结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值