连字都看不懂,写什么博客?

介绍一些常见的编码。

ASCII

乱码的原因:编码体系不同

  • 1byte表示8bits
  • 第一位规定为0,剩下7位组成128个字符

GB series

首位不为0,与ASCII兼容

GB2312/GBK

GB18030

Unicode

符号集,定长编码,计算机内存中统一使用

容纳所有符号,解决乱码问题

浪费空间

UTF-8

UTF-8 是 Unicode 的最广的实现方式

兼容ASCII

Base64

Base64加密

其实就是把文本ascii分为每6个一组编码,若不是6的倍数就加0,加2个0添1个=

  1. 将每3bytes分为一组,共24bits

  2. 将24bits分为4组,每组6bits

  3. 每组前加2个00,扩展为32bits,分成四组,按下列表格编码转换

    索引 对应字符 索引 对应字符 索引 对应字符 索引 对应字符
    0 A 17 R 34 i 51 z
    1 B 18 S 35 j 52 0
    2 C 19 T 36 k 53 1
    3 D 20 U 37 l 54 2
    4 E 21 V 38 m 55 3
    5 F 22 W 39 n 56 4
    6 G 23 X 40 o 57 5
    7 H 24 Y 41 p 58 6
    8 I 25 Z 42 q 59 7
    9 J 26 a 43 r 60 8
    10 K 27 b 44 s 61 9
    11 L 28 c 45 t 62 +
    12 M 29 d 46 u 63 /
    13 N 30 e 47 v    
    14 O 31 f 48 w    
    15 P 32 g 49 x    
    16 Q 33 h 50 y    

Base64解码

  1. 转换成每个字符对应的十进制
  2. 将十进制数字转换为6位bits
  3. 删去 num(‘=’)*2 bits
  4. 将bits转为bytes

故出现base64隐写