本文简要介绍一款编解码工具,它支持URL编码和解码、Base64编码和解码。
官网地址:https://smart-tools.cn/dev/encoder/app
URL编码是浏览器发送数据给服务器时使用的编码。它是编码算法,而不是加密算法。其目的是把任意文本数据编码为以%前缀表示的文本,编码后的文本仅包含A~Z,a~z,0~9以及-_.*,这样做的目的是便于浏览器和服务器处理。比如,<用%3C表示。为了帮助大家理解,举一个更加具体的例子。
原始的http请求:https://mock.smart-tools.cn/mocktaildemo?name=谭杰
编码后的请求:https%3A%2F%2Fmock.smart-tools.cn%2Fmocktaildemo%3Fname%3D%E8%B0%AD%E6%9D%B0
我们发现除了英文字母、数字之外都变成了以%开头,由于一个中文以3个字节表示,所以"谭杰"用9个%xx表示。
我们知道电子邮件协议是文本协议,如果我们要在电子邮件中添加二进制文件,此时就可以通过Base64编码将二进制文件转换成文本,否则就会出现乱码现象。
Base64编码是一种将二进制数据用文本表示的编码算法,它只包含64个字符,如下所示:['A', 'B', 'C', ... 'a', 'b', 'c', ... '0', '1', ... '+', '/']
。
Base64对应的索引分别从0到63。由于Base64只能展示64种文本字符,因此对于二进制数据,它就需要一套映射机制来实现将二进制数据转换成文本数据,即选取3个字节为一组,进行重新分组:每6个bit为一个新的字节,形成4组,如果要编码的二进制数据不是3的倍数,最后会剩下1个或2个字节怎么办?Base64用\x00
字节在末尾补足后,再在编码的末尾加上1个或2个=
号,表示补了多少字节,解码的时候,会自动去掉。
由于将原先的3个字节变成4个字节,也就是说长度增加了33%,因此,传输效率降低了,目前我们通过将Base64应用于传输少量二进制数据的常见中,例如Cookie、URL等。
本小节我们介绍使用Smart-tools工具箱中的编码和解码工具对文本进行URL和Base64进行编码和解吗处理。
示例1:URL编码和解码
示例2:Base64编码和解码
本文中,我们简要介绍了URL编码和Base64编码的具体含义。同时,介绍了如何基于Smart-tools工具箱中的编码和解码工具对URL、Base64字符串进行编码和解码。