字符编码:ASCII编码\Unicode编码\Base64编码

字符编码

字符编码也称字集码

编码方式与解码方式是一一对应的

使用对应的编码方式进行编码和解码才可得到原始的数据

字符编码: 把字符集中的字符编码为指定集合中某一对象

一般情况的编码方式即为编码实现的方式

ASCII 编码

Unicode 编码

Unicode 的实现方式不同于编码方式,一个字符的 Unicode 编码是确定的,但是在实际传输过程中,由于不同系统平台在设计上的差别、以及出于节省空间的目的,Unicode 编码的实现方式有所不同

实现方式
  1. UTF-16

    UTF-16 编码使用 2 个字节来对一个字符进行编码,所以对于 UCS-2 中的字符(65536 之内),可以直接编码,无需进行任何转换

    UTF-16 编码的另一个作用是可以通过代理对的编码机制,使用变长的方式支持 4 个字节(65536 及以上)的字符

    UTF-16 编码至少使用 2 个字节进行编码,所以存在字节序的问题,即高字节在前(Big-Endian )、还是低字节在前(Little-Endian )

  2. UTF-8

    UTF-8 采用变长(1-3 个字节)的方式来表示 65536 以内的基本字符
    在这里插入图片描述对于 127 以内的字符仅使用一个字节进行编码,能够节省空间

Base64编码

在 XML 文档中直接表示和存储二进制数据

在这里插入图片描述

编码方式

  1. 把每三个 8Bit 的字节转换为四个 6Bit 的字节(38 = 46 = 24),共26种情况即上图的64种情况

  2. 然后把 6Bit 再添两位高位 0

  3. 组成四个 8Bit 的字节(即一个int的长度)

比如 00001010 11001010 01101100 将分解为000010、101100、101001、101100,每6Bit高位补0,然后查表,将转换为C、s、p、s。

在将二进制的数转换为 Base64 编码时,以每 3个字节为单位进行转换,但是,二进制数的长度并不一定是 3 字节的整数倍。因此需要=

例:00001010 11001010 01101100 00001010

(1) 分解为000010、101100、101001、101100、000010、000010 (后面缺了两个字节)

为000010、101100、101001、101100、000010、000010 (后面缺了两个字节)

(2) 使用=代替空缺字节:CspsCC==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值