字符集(Character Set):一套完整的字符集合,包括字母、数字、标点符号和其他特殊符号
BOM(Byte Order Mark):字节顺序标记,出现在文本文件头部,用于标识文件采用的编码
编码:字符 -> 二进制数字
解码:二进制数字 -> 字符
ASCII(American Standard Code for Information Interchange):美国信息交换标准码,包含大小写字母,阿拉伯数字,标点符号,不可见的控制符,共128个字符,编码范围是0-127
GB2312:中国国家标准字符集,包含了ASCII字符集以及约7000个汉字字符,兼容ASCII编码
GBK:汉字内码扩展规范,包含了GB2312字符集以及约20000个汉字字符
Unicode:万国码,可以容纳各种文字,可以表示65536个字符
UTF-8:Unicode的一种实现方式,是一种可变长度的字符编码,兼容ASCII编码,对于拉丁文/希腊文,使用两个字节表示一个字符;对于包括汉字在内的其它常用字符,使用三个字节表示一个字符;对于剩下的极少使用的字符,使用四个字节表示一个字符
Base64:一种编码方式,一种将任意二进制数据转换成ASCII可打印字符的标准编码机制,使用64个可打印字符来代表二进制数据中连续的6个比特位(bit),将每6个连续的比特位视为一个单元,因为6个比特可以表示的最大数值是2^6=64,为了确保每个编码块长度都是4个字符(即3个字节对应4个字符,大小增加1/3),会在原始数据后面添加填充字符'=',最多出现2个'=','='只能出现在末尾
64个字符(加上填充字符'=',实际是65个字符):A-Z, a-z, 0-9,'+','/'
Base64Url:Base64基础上,去除尾部的'=','+'替换成'-','/'替换成'_'