ASCII、GBK、Unicode、UTF-8编码(字符集) 作者:马育民 • 2018-12-12 18:09 • 阅读:10387 需要掌握:[字节(byte)](http://www.malaoshi.top/show_1EF2R6PoDA0P.html "字节(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 原文出处:http://www.malaoshi.top/show_1EF2PfTMBHiG.html