计算机中的编码和字符集:理解二进制、字节流和常见编码方案
编码:将字符串转换到字节串的过程。
解码:将字节串转换成字符串的过程。
GB2312 既是一种中文字符集,也是以 ANSI 标准为基础,实现的中文编码方案。它主要用于简体中文编码,是中国国家标准,于1981年发布。GBK 是 GB2312 的超集。
Unicode是一种字符集,定义了所有字符的唯一标识符(码点),同时也规定了这些字符的名称、属性等元数据。Unicode标准则是为了保证字符在各种不同的平台、应用和语言之间的互通性而制定的。
UTF-8是Unicode字符集的一种编码方案,它将Unicode字符以一至四个字节的可变长度进行编码,可以在保证完整性的同时,对ASCII字符进行兼容处理。因此,UTF-8成为了目前最常用的Unicode编码方案之一。
通过上面的知识,我们可以总结出以下结论:
在计算机中存储的文件,一般都是以字节流的形式存储的,底层基础是二进制。当我们通过16进制查看器打开文件时,其实是将二进制数按照16进制数的方式进行显示。在进行传输时,也是以二进制流的形式进行传输。打开一个文件其实是将字节流(不过是一种数字表现形式,本质上和 int 没什么区别)转换为字符串的过程,这个过程需要使用特定的“编码方案”进行解码。同样,保存一个文件其实也是一个编码的过程,也需要特定的“编码方案”进行编码。常用的文件编码格式“UTF-8”是 Unicode 字符集编码方案之一,同时也是 Unicode 标准的实现。
• 计算机中存储的文件一般是以字节序列的形式存储的,而字节序列通常都是二进制的。因此,我们可以说计算机中存储文件的底层基础是二进制。
• 在传输文件时,常常使用的是二进制流的传输方式,因为字节流本身就是一种二进制的表现形式。
• 当我们打开一个文件时,程序需要将文件中的字节流转换为字符串进行处理,这个过程需要使用特定的字符编码(例如UTF-8、GBK等)进行解码。相反,当我们保存一个文件时,程序需要将字符串转换为字节流进行保存,这个过程需要使用特定的字符编码进行编码。
• 除了UTF-8之外,还有其他常见的字符编码格式,例如UTF-16、GB2312、ISO-8859-1等。
在计算机领域中,”码“这个字通常指的是编码方案,也就是将字符转换为二进制表示的方式。而二进制码或字节码通常是指在计算机中存储和处理数据时所用的二进制表示形式。
我们可以将计算机存储的二进制数通过特定的编码方案(如UTF-8)转换为可读的字符,这个过程称为解码。同样地,我们也可以将字符通过编码方案转换为二进制数,这个过程称为编码。在计算机内部,所有的数据都是以二进制形式进行处理的,无论是存储、传输还是计算等操作都是基于二进制的。