有时你打开一个文件,会发现显示出来的东西你一个一个分开来看,都认识,但是合在一起,就不认识了。比如:烫烫锟斤拷
简单的理解是文件打开方式有问题,比如用wps建立一个文档,
然后用记事本打开
深层次的理解是编码与解码的方式不一致
比如你用英语和拼音按同样的按键,输出的结果不一样。
我搬砖时,经常为输入法要来回切换烦恼不已。
ASCII 字符集
计算机起源于美国
他们用二进制来存储数据
每一个 0 或 1 称为一位
而八位就组成了一个字节
每一位能标识两种状态
每个字节则能标识 2^8 = 256 种状态
那么这些状态有啥用呢?
美国人把 0 - 127 这 128 个状态
都映射到各种字符上
包括大小写英文字母、标点符号、数字等
这就是常说的 ASCII 字符集
ASCII 拓展字符集
后来
随着其他国家开始使用计算机
ASCII 里没有他们的字母
他们便利用起剩下的 128 - 255 位
这被称为 ASCII 拓展字符集
ASCII 的中文拓展
然而
事情并没有这么简单
等到中国人开始使用计算机时
已经没有多余的位置了
咋办呢?
智慧的中国人民
毫不客气地去掉了127 位之后的编码
用 2 个字节来编码一个汉字
这样一来
7000 多常用汉字的编码问题就解决了
这就是 GB2312 编码
它是对 ASCII 的中文拓展
GBK
GB2312 不够用了咋办呢
这回拓展出了GBK
不仅包含 GB2312 所有内容
还包含了 20000 多个
新的汉字(含繁体字)
GB18030
再后来少数民族也要用电脑了
GBK 又拓展成了 GB18030
这一系列汉字编码标准被通称为
由于各国都有了自己的标准
为了正好的使用,制定了统一的标准
unicode
Unicode 的制定就是为了
将世界上所有的符号都纳入其中
每一个符号都给予一个独一无二的编码
如此一来就可以解决乱码问题
(虽然到现在并没有解决)
参考文献: