常见的UTF-8、GBK、Unicode之间的区别和联系
Unicode是国际通用的一种编码标准,它包含着世界上各个国家的所有符号且每一个符号都对应着一个全球唯一的数字。每一个符号在计算机物理层存储的都是二进制,但是有些字符像英文字母只需要用一个字节就能表示,有的符号可能要用很多字节表示,计算机无法知道哪个符号用几个字节表示,要是全部统一用固定字节就会造成大量的浪费,如何解决这个问题?
西方人提出了一种编码方式就是utf-8(utf16/utf32),是变长编码,英文只用一个字节即可,汉字要用三个字节;
针对汉字编码的问题,专门提出了gbk,每个符号用两个字节表示,比utf8的方式占用资源少。
因此,处理的文本主要为中文时最好用gbk编码,英文较多时用utf8编码。
gbk和utf8两种编码之间转换要通过unicode来间接实现。
一个符号可通过unicode码表查到二进制数表示,再将其转化成utf8(gbk)编码的形式存贮;解码时将utf8(gbk)转化成unicode,就可还原符号。