一文搞懂ASCII码、GBK、UTF-32、UTF-8编码集!
1.ASCII字符集编码
美国信息交换标准码,使用 1 个字节进行符号表示;其中字节首位都为0,后7位表示英文字母、数字、及一些常用符号。
2.GBK字符集编码
汉字内码扩展规范,汉字使用 2 个字节进行符号表示,兼容(包含)ASCII,ASCII码中的字符用一个字节表示;其中汉字字符的字节首位为1,而ASCII中字符的字节首位为0,这样可在编码解码时进行区别。
3.UTF-16和UTF-32字符集编码
分为utf-16(使用2个字节或4个字节)和utf-32(使用四个字节)两种
其中utf-32对于每一个字符都使用4个字节进行表示,空间浪费比较严重,因此推出utf-8
4.UTF-8字符集编码
目前最为主流的、统一的编码方式,使用1至4个字节为每个字符编码。汉字占3个字节,英文、数字、常用符号占一个字节。
注意:UTF8、UTF16、UTF32都是unicode字符集的字符编码规则
unicode编码和utf-8编码的区别
简单来说:
- Unicode 是「字符集」
- UTF-8 是「编码规则」
其中:
- 字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point)
- 编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)