字符集相关知识:
2026/6/1 14:33:56 网站建设 项目流程

一、字符集
1.1 字符集的来历
我们知道计算机是美国人发明的,由于计算机能够处理的数据只能是0和1组成的二进制数据,为了让计算机能够处理字符,于是美国人就把他们会用到的每一个字符进行了编码(所谓编码,就是为一个字符编一个二进制数据),如下图所示:


1.2 汉字和字母的编码特点

需要我们注意汉字和字母的编码特点:

    1. 如果是存储字母,采用1个字节来存储,一共8位,其中第1位是0

    2. 如果是存储汉字,采用2个字节来存储,一共16位,其中第1位是1

当读取文件中的字符时,通过识别读取到的第1位是0还是1来判断是字母还是汉字

  • 如果读取到第1位是0,就认为是一个字母,此时往后读1个字节。

  • 如果读取到第1位是1,就认为是一个汉字,此时往后读2个字节。

1.3 Unicode字符集

下面我们详细介绍一下UTF-8这种编码方案的特点。

1.UTF-8是Unicode字符集的一种编码方案,采取可变长编码方案,共分四个长度区:1个字节,2个字节,3个字节,4个字节 2.英文字符、数字等只占1个字节(兼容标准ASCII编码),汉字字符占用3个字节。 3.极少数字符占4个字节 注意:技术人员在开发时都应该使用UTF-8编码!
1.4 字符集小结
ASCII字符集:《美国信息交换标准代码》,包含英文字母、数字、标点符号、控制字符 特点:1个字符占1个字节 ​ GBK字符集:中国人自己的字符集,兼容ASCII字符集,还包含2万多个汉字 特点:1个字母占用1个字节;1个汉字占用2个字节 ​ Unicode字符集:包含世界上所有国家的文字,有三种编码方案,最常用的是UTF-8 UTF-8编码方案:英文字母、数字占1个字节兼容(ASCII编码)、汉字字符占3个字节
1.5 编码和解码
  • 编码:把字符串按照指定的字符集转换为字节数组

  • 解码:把字节数组按照指定的字符集转换为字符串

    /** * 目标:掌握如何使用Java代码完成对字符的编码和解码。 */ public class CharacterTest1 { public static void main(String[] args) throws Exception { // 1. 编码 String data = "a我b"; byte[] bytes = data.getBytes(); // 默认是按照平台字符集(UTF-8)进行编码 System.out.println(Arrays.toString(bytes)); // 按照指定字符集进行编码 byte[] bytes1 = data.getBytes("GBK"); System.out.println(Arrays.toString(bytes1)); // 2. 解码 String s1 = new String(bytes); // 按照平台默认编码(UTF-8)解码 System.out.println(s1); String s2 = new String(bytes1, "GBK"); System.out.println(s2); } } 一键获取完整项目代码

    总结:
    1. 常见字符集有哪些?各自存储数据的特点是什么?
    英文和数字等在任何国家的字符集中都占1个字节
    GBK字符中一个中文字符占2个字节
    UTF-8编码中一个中文1般占3个字节

    2. 编码前的字符集和解码时的字符集有什么要求?
    必须一致,否则会出现字符乱码

    3. 英文和数字,在常见的字符集中是否会出现乱码?为什么?
    英文,数字一般不会乱码,因为很多字符集都兼容了ASCII编码。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询