常见字符集及其分类

1,137 阅读4分钟

常见字符集及其分类

字符集编码是指对多个字符(通常在几十到几万个不等)进行整合封装成一个文件所使用的编码,外部程序通过这种编码就可以从字符集文件中调用指定的字符。我们常见的计算机字体文件就使用了字符集编码,通过输入法输入文字或者浏览网页时都会通过指定的字符集编码从字体文件中调用字符。

1.以下是常见的字符集:

  • ASCII及其扩展字符集

作用:表语英语及西欧语言。位数:ASCII是用7位表示的,能表示128个字符;其扩展使用8位表示,表示256个字符。范围:ASCII从00到7F,扩展从00到FF。

  • ISO-8859-1字符集
作用:扩展ASCII,表示西欧、希腊语等。
位数:8位,
范围:从00到FF,兼容ASCII字符集。

  • Latin1
    ISO-8859-1的别名
  • GB2312字符集:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。
  • BIG5字符集:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。
  • GBK字符集:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。
  • GB18030字符集:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。
  • UCS字符集
作用:国际标准 ISO 10646 定义了通用字符集 (Universal Character Set)。它是与UNICODE同类的组织,UCS-2和UNICODE兼容
位数:它有UCS-2和UCS-4两种格式,分别是2字节和4字节
范围:目前,UCS-4只是在UCS-2前面加了0×0000

  • Unicode字符集:
作用:国际标准字符集,它将世界650种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换,兼容ISO-8859-1
位数:UNICODE字符集有多个编码方式,分别是UTF-8,UTF-16和UTF-32

2.如何判断字符集

2.1 字节序首先说一下字节序对编码的影响,字节序分为Big Endian字节序和Little Endian字节序。不同的处理器可能不一样。所以,传输时需要告诉处理器当时的编码字节序。

  • Big Endian
    大端存储:高位字节存在低地址,低字节存于高地址
  • Little Endian
    小端存储:相反
举例:0x03AB
大端存储 0000:03 0001:AB
小端存储 0000:AB 0001:03

  • Java判断处理器是大端存储还是小端存储
public class JudgeCPUEndian {
    public static void main(String[] args) {
        if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
            System.out.println("BIG_ENDIAN");
        } else {
            System.out.println("LITTLE_ENDIAN");
        }
    }
}

2.2 编码识别

UNICODE,根据前几个字节可以判断UNICODE字符集的各种编码,叫做Byte Order Mask方法BOM:
UTF-8: EFBBBF
UTF-16 Big Endian:FEFF
UTF-16 Little Endian:FFFE
UTF-32 Big Endian:0000FEFF
UTF-32 Little Endian:FFFE0000

3.按所表示的文字分类

语言 字符集 正式名称
英语、西欧语 ASCII,ISO-8859-1 MBCS 多字节
简体中文 GB2312 MBCS 多字节
繁体中文 BIG5 MBCS 多字节
简繁中文 GBK MBCS 多字节
中文、日文及朝鲜语 GB18030 MBCS 多字节
各国语言 UNICODE,UCS DBCS 宽字节

***【感谢您能看完,如果能够帮到您,麻烦点个赞~】

更多经验技术欢迎前来共同学习交流:一点课堂-为梦想而奋斗的在线学习平台 http://www.yidiankt.com/

![关注公众号,回复“1”免费领取-【java核心知识点】]file

QQ讨论群:616683098

QQ:3184402434

想要深入学习的同学们可以加我QQ一起学习讨论~还有全套资源分享,经验探讨,等你哦!在这里插入图片描述