网络编程

网络编程 - URL编码

2019-05-06  本文已影响0人  HRocky

URL字符串中的字符

参考:RFC2396 RFC1738

URL中使用的字符必须来自ASCII的一个固定的子集,确切地讲,包括:

既然规定了URL中允许的字符范围,那么范围外的字符出现在URL字符串中的时候就要做编码处理。下面就详细说一下哪些字符需要编码以及原因:

百分号编码(Percent-encoding)

上面说到了要对URL中非有效字符进行编码,那么如何进行编码呢?URL中使用百分号编码的方式进行编码,这个编码的方式为:

“%”后面跟着替换字符的ASCII值的十六进制表示形式。

空格是一种特殊情况,因为它太普遍了。除了编码为%20,空格可以编码为加号(+)。加号本身编码为%2B。

下面列出了一些常见字符的编码值:

字符 编码值
: %3A
/ %2F
? %3F
# %23
[ %5B
] %5D
@ %40
! %21
$ %24
& %26
' %27
( %28
) %29
* %2A
+ %2B
, %2C
; %3B
= %3D
% %25
空格 %20 or +

根据上下文的不同,空字符被翻译成'+'(类似于application/x-www-form-urlencoded消息中使用的百分比编码版本),或者像在Urls中编码成'%20'。

URL编码问题

下面的文章对URL编码问题描述得比较详细,跳转阅读:

http://www.ruanyifeng.com/blog/2010/02/url_encoding.html

上一篇下一篇

猜你喜欢

热点阅读