今天有朋友问到关于字符串编码的问题,突然想到之前在看赵剑宇的.net的课程有很简单暴力的讲解,于是整理贴出来。
我们需要在计算机中保存字符串,例如ab,但是计算机只能保存二进制怎么办?首先想到的我们可以用对应的二进制来代替a和b,比如我用01100001代表a,01100002代表b。但是我需要和全世界的电脑来交互,我知道01100001是a,01100002是b,但是别人不知道,于是国际为了保障信息交换标准统一指定一种编码,每个字用指定的二进制来代替即可。具体的如下过程
(1).美国人最早创造了计算机,基本常用a-z,0-9完全够用,于是创造出ASC编码,包含了128种字符串。
(2).欧洲人开始使用计算机,由于音标不同,发现原来的ASC编码根本不够用,有些字符串没有对应的二进制表示,于是创造了ASCII编码,包含256种字符串。
(3).中国人开始使用计算机,显然a-z,0-9不包含中国汉字,中国创造GB2312编码,包含了中国的简体字。
(4).香港、澳门、台湾开始使用计算机,但是所有编码都没有繁体字对应的二进制表示,于是创造了Big5,包含繁体字。
(5).美国人开始觉得编码实在太多了,于是创造了unicode编码,基本满足每个国家的使用,但是缺点是解析速度慢。
(6).随着互联网的高速发展最终才有了现在的utf-8编码
说白了,字符串编码就是一种规定,全世界通用的规定,规定某个字符串在计算机中使用哪个二进制表示。