需要掌握:字节(byte)
ASCII编码
计算机是美国人发明的,最早只有 127个字符 被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为 ASCII编码
一个字节最大是255,大于字符总数127,ASCII码,一个字符占一个字节
GBK编码
中国汉字有几万个,常用汉字几千个,一个字节最大是255,不够存储汉字,至少需要2个字节(最大整数是65535),还不能和ASCII编码冲突,所以,为了存储汉字,制定了GB2312、GBK编码, 1个汉字占2个字节 (GB2312不常用了)
Unicode编码
计算机使用越来越普及,全世界的语言文字有很多,各个国家都会像中国指定自己文字的编码,为了 支持各国文字,提出Unicode编码。
Unicode把 所有语言文字 都统一到一套编码里,这样就不会再有 乱码 问题了
在Unicode中,最常用的字符,是 两个字节 表示 一个字符 (如果要用到 非常偏僻 的字符,就需要 4个字节 甚至更多)
UTF-8
使用Unicode编码后,可以解决各国文字的问题,但 两个字节 表示 一个字符 ,也会带来新的问题:
如果文本全是 英文 ,用 Unicode编码 比ASCII编码 需要 更多的空间
注意:在网络传输、存储到硬盘时劣势更加明显
为了解决上面问题,提出 UTF-8编码,是一种变长的编码方式,把一个Unicode字符编码成 1-6个 字节:
- ASCII码仍然是 1个字节
- 常用汉字通常是 3个字节,生僻汉字占用4个字节
- 很生僻的字符被编码成4-6个字节
这样就能节省大量空间
内存和文件(网络传输)的编码方式
- 在计算机内存中,统一使用Unicode编码
- 保存到硬盘(网络传输)时,转换为UTF-8编码
感谢:
https://blog.csdn.net/gqtcgq/article/details/47068817
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431664106267f12e9bef7ee14cf6a8776a479bdec9b9000