个人信息保护法草案如何捍卫信息安全
|
ASCII 实际上是 7 位编码,用二进制代码表示就是 0000000~1111111,不过 1 个字节是 8 位,所以一般都用 8 位来存储。可以看到 ASCII 代表了 128 个字符,这其实是倾美国的编码,你看同样讲英文的英国,ASCII 上都没英镑的标记。 还有人家的韩文,日文等等,更别说咱们中文了。 1 个字节最多只能表示 256 个字符,所以对我们来说不够用,因此需要扩展,像 GB2312 就是我们国家标准总局发布的《信息交换用汉字编码字符集》,后来又发布了 GBK ,这个 K 就是扩展的意思,在 GB2312 的基础上又添加了很多比如繁体字等字符。 所以说等于每个国家都有自己的标准,因为语言都是不同的,各字符集的不同就导致计算机之间文档的交流非常困难,因此大家又开始了一波标准化。 像美国的 ANSI 组织制定了 ANSI 标准字符编码,其实就是制定平台默认的编码,比如中国的操作系统就用 GBK ,如果是美国就用 ASCII,操作系统会预装这些标准字符集。
不过这只能解决一份文档一份字符编码的情况,假设我文档里面有日语、法语、德语、俄语、中文,你说怎么办? 那为什么会出现乱码呢? 什么是编码,什么是解码? 什么是字符码,什么是字符集? 为什么要有 Unicode ?UTF-8 和 GBK 又有什么不同呢? 三歪坐在我的腿上对我撒娇似的说出这一连串的问题,我这个人宠粉但是更宠女朋友,所以就有了这篇文章。 为什么会出现乱码我们知道计算机里存储的只会是 0 和 1 组成的字节流,而仅是数字满足不了我们的需求,我们还需要文本的处理等等,但是计算机只认识数字,所以我们需要告诉计算机什么数字代表什么字符。 比如我指定 0000 代表 A,0001 代表 B 这样计算机就知道了,所以我要把 AB 这两个字符存入计算机的话,实际存储的就是0000 0001,其实就等于把每个字符定制一个唯一的编码。 但是这是我的指定,不同的人想法是不同的,比如小明就喜欢 1000 表示 A ,1111 表示 B,那小明的计算机按照他指定的编码方式存储,就是 1000 1111,之后传输给我的计算机,我拿到1000 1111,按照我的编码解出来可能就是 %& 了,这就乱码了。 所以乱码的本质就是编码和解码实现没对应上。 有些同学可能对编码和解码的概念不太熟悉,我来解释一下:
可以看到随意编码的就会产生各自的计算机都无法正确解析的情况,所以需要有一个标准,大家都按那个标准来指定字符和数字的对应关系。 标准字符编码
美国国家标准协会 ANSI 就制定了一个标准,即美国信息交换标准代码(ASCII),规定了常用字符集的集合和对应的数字编号,例如 65 表示 A。 (编辑:信阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
