字符编解码

所有的文件存储-------->字节

字节(byte)  --(编码)-- >   字符 (char)

字节(byte)  < --(解码)--    字符 (char)

字节:跟机器打交道。

字符:跟人打交道。

乱码的本质原因:编码、解码不一致。

ASCII (American Standard Code For Information Interchange,
    美国信息交换标准代码)。
    用7bit来表示一个字符,2的7次方 = 128个字符。

ISO-8859-1(西欧的编码标准,ASCII是它的子集)
    用8bit(一个字节)来表示一个字符,2的8次方 = 256个字符。

中文:gb2312 < gbk < gb18030
    用16bit(两个字节)来表示一个汉字。2的16次方 = 65536个字符。

unicode 万国码,包含全世界的字符。
    用16bit(两个字节)表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
    优点是:可以表示所有的字符。
    缺点是:存储变大。(原本a字符仅需要1个字节的存储空间,现在变为两个字节才能存储)

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,UTF-8用1到4个字节编码Unicode字符。
    特点:变长的字节表示。
    一般来说,用3个字节表示一个中文。英文用1个字节来表示。

猜你喜欢

转载自www.cnblogs.com/chen--biao/p/11329763.html