ASCII-Unicode-UTF-8

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/king_qg/article/details/85995699

字符编码

ASCII

标准ASCII

一个字节的低7位存储数据,最高位用作奇偶检验位。

扩展ASCII

一个字节全部用来存储数据。

Unicode

Unicode不是编码,而是字符集,字符集为每个“字符”都规定了一个码点(二进制的序列)。

目的

为了统一所有文字的编码。

UTF-8

是对Unicode的的编码规则,而且长度是可变的。

编码规则

占用字节 编码
1 0xxxxxxx
2 110xxxxx 10xxxxxx
3 1110xxxx 10xxxxxx 10xxxxxx 10xxxxxx
4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
  • 编码后只需要用一个字节,那么最高位为0。
  • 编码后需要不只一个字节,第一个字节从最高位统计1连续的个数,数目代表了多少个字节。

UTF-8编码最多使用6个字节,根据编码规则,表述数据的部分有31位。

UTF-8演示

  • 严的Unicode码点为0x4E25
  • 二进制需要15位表述数据,UTF-8需要3个字节
  • 编码后就是1110xxxx 10xxxxxx 10xxxxxx
  • 用码点的数据替换上述的x
  • 得到1110100 10111000 10100101

特点

  • 变长
  • 无需考虑字节序

关于作者

大四学生一枚,分析数据结构,面试题,golang,C语言等知识。QQ交流群:521625004。微信公众号:后台技术栈。
image

猜你喜欢

转载自blog.csdn.net/king_qg/article/details/85995699