1.2. 什么是字符编码

计算机中存放的都是0和1的二进制值。8个位对应一个字节,常用16进制来表示。

而我们普通用户所希望看到的是,计算机把其所存储的对应的16进制的数值,转化为对应的字符,包括英文和中文等其他语言的字符,然后输出到屏幕上。

而所谓编码,就是,定义了一套规则,去指定,哪些数值,对应着哪些字符。

举个最简单的例子,常见65=0x41对应的是大写字母A,97=0x61对应的是小写字母a,而这套数值和字母之间的映射关系,说白了,就是一套规则,就叫做字符编码,即我们常说的ASCII编码。

那有人会问了,如果我定义了一套规则,假如叫张三编码,然后故意去把ASCII中的映射关系改变,比如97=0x61对应的是大写字母A,65=0x41对应的是小写字母a,等等,可不可以?答案是,完全可以,不过这套规则,首先没有得到所有计算机业界的一致认同,所以,除了你自己用,其他人不原意使用,那么也就是没了存在的价值了。

换句话说,当初ASCII之所以这么定义这套规则,就是这么定义了而已,然后大家都接受这个标准,然后就都用这个定义了。

即,如果当初定义为0x41代表的是小写字母a,而不是大写字母A,那么现在你所看到的,就是小写字母a就是对应着计算机中存储的0x41,而不是之前的0x61了。

所以,简单的说就是:

所谓字符编码,就是定义了一套规则,指定了计算机中存放的这么多值中的哪个值,对应了电脑屏幕显示出来的哪个字母。