1 概念
1 计算机二进制:在计算机中,所有的数据在存储和运算时都要使用二进制数表示 (因为计算机用高电平和低电平分别表示1和0) 2 编码 具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码) 3 编码标准化 美国有关的标准化组织就出台了ASCII编码,统一规定了常用符号用哪些二进制数来表示 4 b byte 字符 字节 bite(简写b):二进制数中的一个数位,即 “0” 或者 "1" byte(简写B):字节 字节跟字符有关! 英文字符:单字节 中文字符:两个字节 1 Byte = 8 bit ps:一般文件大小 都是Byte 而宽带网速 是bit:比特每秒(bits per second)bps
下载速度从理论上来说,应该是 带宽的 八分之一。 2M 宽带理论下载速度是 256 KB 10M 宽带理论下载速度是 1280 KB |
2 ASCII码 BASE64对照表
2.1 编码对照表 ASCII BASE64: https://blog.csdn.net/hellolovelife/article/details/81034957
2.2 BASE64
2.2.1 BASE64:包含大小写字母各26个!+0-9 10个数字 再加特殊字符 + - =64个
2.2.2 为什么要使用BASE64?
比如发送: Hello world! if I send it as ASCII (or UTF-8) it will look like this: 72 101 108 108 111 10 119 111 114 108 100 33 其中10 换行符:在某些系统会损坏!所以:要对二进制进行BASE64编码! |
2.2.3 BASE64能不能取代URLencode
base64虽然能编码特殊字符,但是其对照表中还有+ - ,依然有特殊字符!所以不能替代URLencode!
2.2.4 BASE64应用常见作用(网络上最常见的用于传输8Bit字节代码的编码方式)
主要应用于把二进制转化为字符!(即:把二进制信息转化为文本信息)
早期的一些邮件服务器只支持文本信息,不支持二进制信息和文件。
而base64编码后的结果都是纯文本的,适合用电子邮件来传送二进制数据
2.2.5 BASE64编码原理
三个8位,先变为4个6位,通过在每个6位前补00,最终变成4个8位!(最终的文本长度增加了33%)
Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式
可以这么考虑:把8位的字节连成一串110101011100010100110011
然后每次顺序选6个出来之后再把这6二进制数前面再添加两个0,就成了一个新的字节。之后再选出6个来,再添加0,依
此类推,直到24个二进制数全部被选完。
让我们来看看实际结果:
3 BASE64 优化HEX
BASE64与HEX,均在 org.apache.commons.codec 此JAR下讨论! 不是JAVA自带的BASE64或者其他版本! BASE64与HEX 都可以把字节流编码为文本流! 区别:BASE64 转化为可能包含+ - / =特殊字符 HEX:不存在特殊字符!是纯数字与字母的组合 |
4 区别 二进制 字节 文本 文件
byte:字节
文本:字符 字节到文本----可以通过BASE64