URL编码和Base64编码(转)
我们经常会遇到所谓的URL编码(也叫百分号编码)和Base64编码。
先说⼀下Bsae64编码。BASE64编码是⼀种常⽤的将⼆进制数据转换为64个可打印字符的编码,常⽤于在通常处理⽂本数据的场合,表⽰、传输、存储⼀些⼆进制数据。例如邮件系统的MIME协议等。这个协议的⽤途,是确保接收⽅在只能识别可见⽂本字符的情况下,能够接受和识别⼆进制数据。编码后数据长度⼤约为原长的135.1%。
Base64编码是⼀种⼀对⼀的映射编码,其编码长度始终是3的倍数,不⾜3位,⽤=填充。所以,如果你看到⼀⼤堆乱七⼋糟的数据后⾯是=结尾的,⼤部分时候可以判定是Base64编码。由于Base64是映射编码,所以如果⼈为改变它的映射表,就可以作为⼀种简单的数据加密⼿段了。
url编码处理再说⼀下URL编码,这个编码通常⽤在⽹页地址(URL)的传递中,在URL解释中,部分字符例如/ +等,有着特定的意义,因此不能直接使⽤Base64编码来传输地址⽂本。这个编码也适⽤于统⼀资源标志符(URI)的编码。URI所允许的字符分作保留与未保留。保留字符是那些具有特殊含义的字符. 例如, 斜线字符⽤于URL (或者更⼀般的, URI)不同部分的分界符,未保留字符没有这些特殊含义。URL编码把保留字符表⽰为%开头的特殊字符序列,所以⼜叫做百分号编码。
2005年1⽉发布的RFC 3986,强制所有新的URI必须对未保留字符不加以百分号编码;其它字符要先转换为UTF-8字节序列, 然后对其字节值使⽤百分号编码。但是在⽬前的实际应⽤中,⼀个URL地址在做百分号编码之前,其未保留的字符序列不⼀定采⽤的是UTF-8编码,也有可能是ANSI编码。此外,部分早期的系统将空格编码成+,⽽不是标准推荐的%20,这是我们在实际应⽤中应该注意的事项。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。