有强赎风险的可转债「可转债的风险有哪些」 恒大还能翻盘吗「恒大债务升级」 恒大最近有什么好消息「好消息还会传给谁」 债券基金近一年收益103 54 排名第一名「债券基金排名第一」 银行非标融资「银行非标业务」 债券基金风险有多高 年化收益多少比较合理呢「债券基金风险高吗」 中国重工大宗交易「天能重工大宗交易」 金鹰添祥中短债c基金净值「202102基金净值」 2021年6月份首发基金「基金认购是在发行时」 晶科转债申购「泰晶转债转股价」 海航重整方案将出炉 料留债展期及债转股「122071海航债什么时候到期」 谈谈 中小企业融资 「国内中小企业融资现状」 发行地方债对债市的影响「估债轮动配置基金」 债券是一种有价证券 , 投资者要知道2个 关键点 「债券是一种」 大盘下跌,基金如何操作「基金高开低走时可以买吗」 华创债券论坛「你问我答 华创资管QQ总对债市热点问题的分析 2018 9 2」 美的置业资金「企业融资降成本方案」 股债性价比「股涨债跌」 债券未来趋势「美债危机对全球的影响」 纳斯达克市场名词解释「常用英语语法术语表」 投行摩根大通「摩根大通银行股票」 基金年化收益6%「过去10年纯债基金平均年化收益率」 关于债券资金支出进度的通报「2021年政府专项债券申报指南」 影响债券估值的因素包括「债券估值收益率」 短期利好债市「短期债券市场」 国债 工行「财政部发行特别国债」 如何像银行一样挣钱呢「成功人士用银行的钱赚钱」 扬基债券,武士债券,熊猫债券都属于哪一类债券「扬基债券是哪个国家的」 博时债券基金怎么样「博时宏观回报债券c怎么样」 用银行存款买公司债券「营销地方债存款」 债券基金暴涨「偏股,偏债,指数基金」 十分钟学会债券基金怎么买「债券基金在哪买」 富途证券 富途牛牛区别「富途牛牛是干什么的」 可转债是什么 相对股票来说有什么特点和优势呢「可转债好吗」 债券基金怎么选 擦亮眼睛6步搞定「债券基金选择方法」 可转债是什么意思呢「显示可转债什么意思」 债基持续暴跌「债券基金踩雷」 债券价格和实际利率的关系「债券的价格与利率的关系」 债券型产品 近九成净值正增长吗「260108今天基金净值」 关于新基金的看法「基金一般要持有多久能看到成效」 固收债基最牛基金「兴业银行临额转固」 银行理财固收的有风险吗「固收理财产品风险」 信托fof「fof信托是什么意思」 2021年基金收益率排行「2019基金收益排行」 中国首次发行负利率主权债券,为何被热捧?「负利率国债为什么有人买」 债基客户维护费「债券基金手续费怎么收」 可转债上市首日临停规则「新债上市停牌规则」 公司债券指数「债券市场指数」 国债,债券「城投债券是什么意思」 为啥美股跌全世界跌「美股全线下跌对中国股市」
您的位置:首页 >财经 >

utf8和unicode的区别「unicode和utf8」

2023-06-02 18:37:55来源:搜狐

作者:拉丁吴

UTF-8和unicode到底有什么区别?是存储方式不同?编码方式不同?它们看起来似乎很相似,但是实际上他们并不是同一个层次的概念

要想先讲清楚他们的区别,首相应该讲讲Unicode的来由。

众所周知,在盘古开天辟地之前,sorry ,走错片场了(⊙o⊙)…在计算机发明的时候 ,由于计算机你只能表示二进制的数据,美帝人民为了交流通信方便,约定了一个编码系统,就是ASCII码,把abc..xyz...ABC...XYZ...!@#...等字符分别和0,1,2,3,4......对应,发现差不多刚好128个数,半个字节的长度,为了防止以后需要为新的符号编码,于是干脆取一个字节,最高位置为0。后七位从0-127分别对每一个符号编码。于是,计算机每次读取一个字节,然后参照ASCII表把这些编码翻译成字符。美国人民很高兴,拿着自己玩去了.......后来欧洲人也玩计算机,发现不行啊,还有很多符号(法语,德语)ASCII没办法表示啊,于是欧洲人自己也撸了一套编码,一个字节的长度,把最高位也用掉了。这套编码叫ISO。和ASCII表类似,计算机也是每次只读一个字节,然后按照ISO表,解码出字符。于是欧洲人民也很高兴。中国人不高兴了,特么我们汉字有几万个,常用的就有几千个,没有两个字节根本交不了货。于是勤劳勇敢的中国人民就破天荒的用了两个字节来表示中文。整出一套gbk。为了现实我中华民族兼容并蓄,我们兼容了ASCII编码。gbk编码规定,计算机不能在每次都只读一个字节那么死板了,你要先看看第一位是不是为0,要是为0 的话,就当作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个字节不等

utf-8.png

我知道你想说,明明看起来utf-16更加节省资源,节省空间,正常人都看得出来。但实际上,当时,互联网上绝大部分存在的资源都是英文的,英文在utf-16中也是2个字节,而在utf-8中则是1个字节。在当时,显然是utf-8更加节省资源。现在我们在中文世界里来比较他们,则是utf-16更加节省资源。

OK,关于unicode和utf-8的区别已经解释完毕了。下面用一个图来巩固一下那些区别

Unicode与uft-8的结构关系.png

免责声明:本网站所有信息仅供参考,不做交易和服务的根据,如自行使用本网资料发生偏差,本站概不负责,亦不负任何法律责任。涉及到版权或其他问题,请及时联系我们。