标签:世界 汉字 读取 ogr 存储方式 信息 utf-8 位置 分享
utf-8和Unicode到底有什么区别?是存储方式不同?编码方式不同?它们看起来似乎很相似,但是实际上他们并不是同一个层次的概念
要想先讲清楚他们的区别,首先应该讲讲Unicode的来由。
后来欧洲人也玩计算机,发现不行啊,还有很多符号(法语,德语)ASCII没办法表示啊,于是欧洲人自己也撸了一套编码,一个字节的长度,把最高位也用掉了。这套编码叫ISO。
中国人不高兴了,特么我们汉字有几万个,常用的就有几千个,没有两个字节根本交不了货。于是勤劳勇敢的中国人民就破天荒的用了两个字节来表示中文。整出一套GBK。为了现实我中华民族兼容并蓄,我们兼容了ASCII编码。
于是天下就很乱了,欧洲人看不懂我们发过去的信息,我们也看不懂他们的东西,美国人看不懂我的东西,不过我们能看懂他们的信息。。。哈哈。
总之,天下大乱,群雄并起,百姓生灵涂........
这个时候,就有个国际组织站出来了,说,这么着吧,我来撸一套编码,把大家的编码都归纳进来。于是unicode编码就出现了。这套编码表的编号从0一直算到了100多万(三个字节)。每一个区间都对应着一种语言的编码。目前几乎收纳了全世界大部分的字符。所有的字符都有唯一的编号,这就解决了解码的冲突,于是天下大定!但是,unicode把大家都归纳进来,却没有为编码的二进制传输和二进制解码做出规定。只留下一句:大哥只能帮你到这里了。
我知道你一定在想,要个毛的规定啊,每次让计算机读取三个字节然后参照Unicode表解码就好了。想法是好的,但是如果类似于1号编码这样的小数据编号也要三个字节的话,那么也就是0x000001,这简直就是浪费啊,明明一个字节就可以表示了,你非得整三个,所以你到底是几个意思呢?
不管怎么样,大哥虽然走了,但是问题还得解决啊,于是,就出现了如下解决方案:uft-8,utf-16,utf-32这些编码方案。utf-16是用两个字节来编码所有的字符,utf-32则选择用4个字节来编码。下面只讲一下utf-8这种解决方案,因为它用的最多,用得最多是因为在当时它的方案最好,最节省资源。
utf-8为了节省资源,采用变长编码,编码长度从1个字节到6个字节不等
OK,关于unicode和utf-8的区别已经解释完毕了。下面用一个图来巩固一下那些区别
作者:拉丁吴
链接:http://www.jianshu.com/p/36d20de2a1ee
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:世界 汉字 读取 ogr 存储方式 信息 utf-8 位置 分享
原文地址:http://www.cnblogs.com/dhsz/p/7737480.html