base64 和 urlencode的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64 和 urlencode的区别相关的知识,希望对你有一定的参考价值。

base64 和 urlencode的区别

base64
1、包含A-Z a-z 0-9 和加号“+”,斜杠“/” 用来作为开始的64个数字. 等号“=”用来作为后缀用途。
2、2进制的.
3、要比源数据多33%。
4、常用于邮件。

urlencode
除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)
在神马情况下用

json是有编码区别的 只支持utf-8
参考技术A 1.urlencode
url编码主要是为了解决一些url中的一些特殊字符和歧义字符或者中文字符的传输问题,举个Python代码例子

# -*- coding: utf-8 -*-
import urllib

#/url?广州=020
query = "广州":"020"
url = "/url?%s" % urllib.urlencode(query)
print url #编码后 /url/?%E5%B9%BF%E5%B7%9E=020
print urllib.unquote(url) #解码后 /url?广州=020

2.base64
理解成可逆加密算法,只能防肉眼看到真实内容,举个python代码例子:

# -*- coding: utf-8 -*-
import base64
s = "abc"
a = base64.b64encode(s) #编码
print a #编码后输出"YWJj"
print base64.b64decode(a) #解码后输出"abc"

3.sha1/md5
可以理解成不可逆加密算法,举个Python代码例子:
# -*- coding: utf-8 -*-
import hashlib
m = hashlib.md5()
m.update("password") #对"password"加密
print m.hexdigest() #输出"5f4dcc3b5aa765d61d8327deb882cf99"

以上是关于base64 和 urlencode的区别的主要内容,如果未能解决你的问题,请参考以下文章

PHP base64_encode 在URL地址参数编码上使用

Base64&UrlEncode

使用 Base64UrlEncode 的语句 [关闭]

java URLEncoder 和Base64.encode()

php 编码和解码的函数

utf-8和base64啥区别啊?