我了解的字符编码

我了解的字符编码

学习了一些编码知识,想对其进行记录并加入一些我的体会

ASCII码

美国信息交换标准代码.
信息科学起源于美国,最初的编码也起源于美国,所以ASCII码里的文字编码只有英文字符

  1. 采用1Byte(8位二进制数)编码,所以最多只有256种可能的字符
  2. 被大部分后来的编码兼容,这也是为什么我们在改变编码时英文字符不会乱码

GBK

汉字内码扩展规范
在ASCII的基础上扩展了汉字编码,每个字符占2个字节

GB2312 -> GBK(支持繁体) -> GB18030(加入了日文,朝鲜语等)

UNICODE 字符集

Unicode 的建立旨在统一编码,在世界上大多数书写系统中表达的文本都被其包含

UTF-8

utf-8 是万维网上的主要编码,在编程时,也大多使用utf-8进行编码
采用变长编码,存储效率比较高,推荐使用

UTF-16 与 UTF-32

utf-16 为定长编码,固定2个字节,Java中程序内部的编码便为utf-16
utf-32 采用4字节 处理速度较快,但浪费了大量的空间,影响传输速度,较少被使用.

ANSI编码

  • Windows上非Unicode的默认编码
  • 不同系统的默认编码不同
  • 记事本默认采用ANSI保存,所以使用其他编辑器打开记事本写的文件,汉字可能会乱码

字节序

在一些编码中,高低位字节存储顺序不同.

  1. Big Endian : 高位字节存在低地址,低字节存在高地址
  2. Little Endian : 与前者相反

例如, 0XABCD
Big Endian:
0000: AB
0001: CD
Little Endian:
0000: CD
0001: AB

猜你喜欢

转载自www.cnblogs.com/xxrlz/p/10423085.html
今日推荐