utf8与unicode的区别(unicode和utf8的区别)

2024-08-20 16:55:37 1

utf8与unicode的区别(unicode和utf8的区别)

大家好,今天小编来为大家解答以下的问题,关于utf8与unicode的区别,unicode和utf8的区别这个很多人还不知道,现在让我们一起来看看吧!

本文目录

unicode和utf8的区别

什么是Unicode。Unicode的基本目标是统一所有的编码,即它包含所有的字符集。这样只要一个系统支持Unicode,那么,就能处理这些字符集。一般Unicode有两个字节。现在的windows操作系统都是支持Unicode的。 什么是UTF8呢?UTF8 == Unicode Transf.

utf8和unicode的区别

UTF8 == Unicode Transformation Format -- 8 bit是Unicode传送格式。即把Unicode文件转换成BYTE的传送流。UTF8流的转换程序:Input: unsigned integer c - the code point of the character to be encoded (输入一个unicode值)Output: byte b1, b2,b3, b4 - the encoded sequence of bytes (输出四个BYTE值)Algorithm(算法): if (c《0x80) b1 = c》》0 & 0x7F | 0x00 b2 = null b3 = null b4 = null else if (c《0x0800) b1 = c》》6 & 0x1F | 0xC0 b2 = c》》0 & 0x3F | 0x80 b3 = null b4 = null else if (c《0x010000) b1 = c》》12 & 0x0F | 0xE0 b2 = c》》6 & 0x3F | 0x80 b3 = c》》0 & 0x3F | 0x80 b4 = null else if (c《0x110000) b1 = c》》18 & 0x07 | 0xF0 b2 = c》》12 & 0x3F | 0x80 b3 = c》》6 & 0x3F | 0x80 b4 = c》》0 & 0x3F | 0x80 end if =====================unicode 是一种编码表格,例如,给一个汉字规定一个代码。类似 GB2312-1980, GB18030等,只不过字集不同。=====================一个unicode码可能转成长度为一个BYTE,或两个,三个,四个BYTE的UTF8码,取决于unicode码的值。英文unicode码因为值小于0x80,只要用一个BYTE的UTF8传送,比送unicode两个BYTEs快。UTF8是为传送unicode而想出来的“再编码”方法罢了。UTF8转unicode用我上面给的程序反算即可。

utf8与unicode的区别 到底是什么关系

一个字符在内部表示成 unicode codepoint,对于单字节的字符来说,它就是 ASCII 码,对于多字节来说就很复杂的编码,它就是一个代码表,就像查字典,像我们以前的高考时填写的区位码,就是知道横纵坐标后就能查到值,这就是 unicode,但 unicode 本身是多字节支持的编码方案,由于多个字节在网络上传输或保存到磁盘上是按一个字节一个字节来保存的,这就存在先保存字节还是低字节的问题还有一个问题是一直使用字节数来编码字符还是变长字节来编码字节(比如为了兼容性,单字节依然是一个字节保存,其它常见自然语言的字符用双字节,很少见的冷僻字用多字节编码)这也需要让程序知道哪个字节是分隔点(哪几个字节凑在一起是一个字符),因此有多个编码成字节的方案,比如 UTF-8, UTF-16  之类的,UTF-8 就是变长字节方案,它们都是用一个方法来编码 unicode code point。

至于什么叫 UTF-8 (ASCII ) 这可能你得自己试一下,保存之后,用notepad 打开或 java  FileInputStream 按字节读取来观察一下它与 Unicode 有什么不同。Windows 上的 notepad 记事本本身只支持 ANSI,也就是 ASCII ,就是说把内部编码直接当成 ASCII 字节,不对字节做任何转换编码处理,所以当两个汉字4个字节放在一起,我通过程序删除第2个字节的话,你会发现全成了乱码,因为程序会假设 1 + 3 凑在一起是一个汉字,最后一个4单独成一个汉字,所以都是错误的。而 UTF-8 之类的有一套编码规则,或许能推测出这个数据本身有错误,当通过网络传输时我们就能识别出传输过程中是否有错误发生。

unicode编码和utf-8编码的区别

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

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

众所周知,在计算机发明的时候 ,由于计算机你只能表示二进制的数据,美帝人民为了交流通信方便,约定了一个编码系统,就是ASCII码,把abc..xyz...ABC...XYZ...!@#...等字符分别和0,1,2,3,4......对应,发现差不多刚好128个数,半个字节的长度,为了防止以后需要为新的符号编码,于是干脆取一个字节,最高位置为0。后七位从0-127分别对每一个符号编码。

于是,计算机每次读取一个字节,然后参照ASCII表把这些编码翻译成字符。美国人民很高兴,拿着自己玩去了.......

后来欧洲人也玩计算机,发现不行啊,还有很多符号(法语,德语)ASCII没办法表示啊,于是欧洲人自己也撸了一套编码,一个字节的长度,把最高位也用掉了。这套编码叫ISO。

和ASCII表类似,计算机也是每次只读一个字节,然后按照ISO表,解码出字符。于是欧洲人民也很高兴。

中国人不高兴了,特么我们汉字有几万个,常用的就有几千个,没有两个字节根本交不了货。于是勤劳勇敢的中国人民就破天荒的用了两个字节来表示中文。整出一套GBK。为了现实我中华民族兼容并蓄,我们兼容了ASCII编码。

计算机 :  WTF ?? !!

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

utf-8为了节省资源,采用变长编码,编码长度从1个字节到6个字节不等

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

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

UTF和Unicode区别

首先先来捋一捋计算机编码发展史吧。

一些大佬看不下去了,各国这么独立发展,以后咋交流,所以Unicode编码就出现了。这套编码表的编号从0一直算到了100多万。每一个区间都对应着一种语言的编码。目前几乎收纳了全世界大部分的字符。所有的字符都有唯一的编号,这就解决了解码的冲突,于是天下大定!但是, Unicode把大家都归纳进来,却没有为编码的二进制传输和二进制解码做出规定。

那留下问题总要解决,就出现了UTF-32、 UTF-16、 UTF-8.(这里指Unicode的第二个版本)

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。使用记事本的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,完成后,保存的时候再把Unicode转换为UTF-8保存到文件。浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器所以我们看到很多网页的源码上会有类似的信息,表示该网页正是用的UTF-8编码。

总结下来就是: 计算机内存中,统一使用Unicode编码,需要保存或者传输时,转换成UTF8编码。

参考: 计算机中为何不直接使用 UTF-8 编码进行存储而要使用 Unicode 再转换成 UTF-8? Unicode和UTF-8、UTF-16、UTF-32之间的关系 utf-8和Unicode的区别

OK,关于utf8与unicode的区别和unicode和utf8的区别的内容到此结束了,希望对大家有所帮助。

utf8与unicode的区别(unicode和utf8的区别)

本文编辑:admin

本文相关文章:


navicat字体大小设置(Navicat 怎么ba表格转换成utf8)

navicat字体大小设置(Navicat 怎么ba表格转换成utf8)

本文目录Navicat 怎么ba表格转换成utf8怎么对Navicat的Mysql表中字段设置区分大小写navicat怎么改变字体方向navicat premium 12怎么调节命令列界面字的大小navicat能修改mysql表名大小写问题

2024年7月22日 10:27

latin1编码转换为utf8(用perl将含有波斯文的latin1的文件转成utf8的文件,求大神帮助)

latin1编码转换为utf8(用perl将含有波斯文的latin1的文件转成utf8的文件,求大神帮助)

本文目录用perl将含有波斯文的latin1的文件转成utf8的文件,求大神帮助mysql中查看编码status时Client characterset是latin1怎么修改utf8呢怎麽把string转换成utf8格式的mysql ser

2024年7月3日 01:21

utf8与unicode的区别(unicode编码和utf-8编码的区别)

utf8与unicode的区别(unicode编码和utf-8编码的区别)

本文目录unicode编码和utf-8编码的区别unicode和utf8的区别utf8与unicode的区别 到底是什么关系utf8和unicode的区别UTF和Unicode区别unicode编码和utf-8编码的区别utf-8和Unic

2024年7月1日 19:24

更多文章:


内置菜单破解版游戏大全(地铁跑酷牛津内购内置菜单可以快速进去)

内置菜单破解版游戏大全(地铁跑酷牛津内购内置菜单可以快速进去)

这篇文章给大家聊聊关于内置菜单破解版游戏大全,以及地铁跑酷牛津内购内置菜单可以快速进去对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录地铁跑酷牛津内购内置菜单可以快速进去内置菜单破解版游戏大全地铁跑酷武汉版本破解版游戏(内置菜

2024年8月19日 19:50

给你三样东西,让你在封闭房间待3天,你选什么没有电没有网?手机明明连的无聊网放在那里充电怎么又变成4g网

给你三样东西,让你在封闭房间待3天,你选什么没有电没有网?手机明明连的无聊网放在那里充电怎么又变成4g网

本文目录给你三样东西,让你在封闭房间待3天,你选什么没有电没有网手机明明连的无聊网放在那里充电怎么又变成4g网给你三样东西,让你在封闭房间待3天,你选什么没有电没有网给我三样东西,别说让我在封闭的房间待3天,就是待3个月,我都乐意。我也不需

2024年7月3日 13:35

新商盟下载官方新版本(如何下载新商盟订烟网)

新商盟下载官方新版本(如何下载新商盟订烟网)

大家好,今天小编来为大家解答以下的问题,关于新商盟下载官方新版本,如何下载新商盟订烟网这个很多人还不知道,现在让我们一起来看看吧!本文目录如何下载新商盟订烟网新商盟怎么下载新商盟订烟手机版华为手机怎么下载新商盟手机新商盟订烟登录如何下载新商

2024年8月7日 15:55

googlemap日本(google map app在日本是否能实时导航)

googlemap日本(google map app在日本是否能实时导航)

本篇文章给大家谈谈googlemap日本,以及google map app在日本是否能实时导航对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目

2024年6月5日 06:13

直接玩的游戏盒子(7722游戏盒在哪下载)

直接玩的游戏盒子(7722游戏盒在哪下载)

大家好,如果您还对直接玩的游戏盒子不太了解,没有关系,今天就由本站为大家分享直接玩的游戏盒子的知识,包括7722游戏盒在哪下载的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录7722游戏盒在哪下载不用下载就可以玩游

2024年4月5日 17:15

腾讯游戏模拟器(腾讯官方模拟器是哪个)

腾讯游戏模拟器(腾讯官方模拟器是哪个)

“腾讯游戏模拟器”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看腾讯游戏模拟器(腾讯官方模拟器是哪个)!本文目录腾讯官方模拟器是哪个战地模拟器抗日版是腾讯游戏吗腾讯手游模拟器机型设置哪种好用腾讯模拟器安装了游戏打不开设置腾讯

2024年6月26日 19:38

拉马努金算是顶级数学家吗?德邦总管赵信的出装,符文,技能加点(这三个详细点)以及天赋(带图)

拉马努金算是顶级数学家吗?德邦总管赵信的出装,符文,技能加点(这三个详细点)以及天赋(带图)

本文目录拉马努金算是顶级数学家吗德邦总管赵信的出装,符文,技能加点(这三个详细点)以及天赋(带图)lols6德邦最新打野出装技能加点天赋印度18岁天才少年,造出“全球最小卫星”,如今怎样了德邦怎么出符文啊,还有天赋应该要什么…LOL ap赵

2024年5月16日 15:27

方正静蕾简体(这是什么字体)

方正静蕾简体(这是什么字体)

本文目录这是什么字体方正静蕾简体怎么用方正静蕾简体的介绍电视剧《欢乐颂》中歌词用的什么字体-带图,先申请不是“方正静蕾简体”,我试过了,多谢这是什么字体1.大大小小,风格不一,带着体温的书写出来的字体。 手写体范例手写体近年来已经得到进一

2023年12月28日 19:00

手机怎么查看自己的邮箱(手机怎么查看自己的邮箱)

手机怎么查看自己的邮箱(手机怎么查看自己的邮箱)

大家好,关于手机怎么查看自己的邮箱很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于手机怎么查看自己的邮箱的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录

2024年6月30日 10:34

7322游戏盒下载(植物大战僵尸英雄破解版内置修改器怎么下载)

7322游戏盒下载(植物大战僵尸英雄破解版内置修改器怎么下载)

大家好,7322游戏盒下载相信很多的网友都不是很明白,包括植物大战僵尸英雄破解版内置修改器怎么下载也是一样,不过没有关系,接下来就来为大家分享关于7322游戏盒下载和植物大战僵尸英雄破解版内置修改器怎么下载的一些知识点,大家可以关注收藏,免

2024年6月14日 18:07

qq农场牧场辅助(qq农场牧场餐厅三合一哪里有下载)

qq农场牧场辅助(qq农场牧场餐厅三合一哪里有下载)

本篇文章给大家谈谈qq农场牧场辅助,以及qq农场牧场餐厅三合一哪里有下载对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录qq农场牧场餐厅三合

2024年6月14日 21:01

南京疫情最新消息(南京有疫情没)

南京疫情最新消息(南京有疫情没)

大家好,南京疫情最新消息相信很多的网友都不是很明白,包括南京有疫情没也是一样,不过没有关系,接下来就来为大家分享关于南京疫情最新消息和南京有疫情没的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录南京有疫情没南京现

2024年8月17日 08:05

手机令牌qq安全中心(手机版QQ安全中心如何关闭手机令牌)

手机令牌qq安全中心(手机版QQ安全中心如何关闭手机令牌)

本篇文章给大家谈谈手机令牌qq安全中心,以及手机版QQ安全中心如何关闭手机令牌对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录手机版QQ安全

2024年6月4日 05:25

仓库管理员常用的软件(仓管需要学会什么软件)

仓库管理员常用的软件(仓管需要学会什么软件)

各位老铁们,大家好,今天由我来为大家分享仓库管理员常用的软件,以及仓管需要学会什么软件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录仓管需要学会什

2024年7月15日 18:15

163邮箱注册官网(163邮箱注册登录入口)

163邮箱注册官网(163邮箱注册登录入口)

这篇文章给大家聊聊关于163邮箱注册官网,以及163邮箱注册登录入口对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录163邮箱注册登录入口如何注册163邮箱163邮箱怎么注册如何注册申请163邮箱163免费邮箱注册官网163邮

2024年7月4日 10:40

谁给我个尾随3的游戏下载地址?急求biko3的下载地址!!!!

谁给我个尾随3的游戏下载地址?急求biko3的下载地址!!!!

本文目录谁给我个尾随3的游戏下载地址急求biko3的下载地址!!!!求尾随3下载地址可以推荐一些特别良心的手机浏览器吗如果你在路上发现有人尾随你,你怎么做对于流浪狗的尾随,你有什么建议南宁3岁男童被陌生人抱走15分钟,手上多个伤口,陌生人是

2024年5月20日 09:21

怎样和社区的邻居交朋友有什么要注意的?朋友的社区便利店23万包含所有转让,是否可以接手

怎样和社区的邻居交朋友有什么要注意的?朋友的社区便利店23万包含所有转让,是否可以接手

本文目录怎样和社区的邻居交朋友有什么要注意的朋友的社区便利店23万包含所有转让,是否可以接手朋友社区的介绍朋友社区的图标怎样点亮腾讯朋友社区怎么退出来啊朋友社区的特色怎样和社区的邻居交朋友有什么要注意的千买宅万买邻,有个好邻居比远亲好。在楼

2024年3月4日 15:35

迅雷免费加速(迅雷云盘怎么开倍速)

迅雷免费加速(迅雷云盘怎么开倍速)

其实迅雷免费加速的问题并不复杂,但是又很多的朋友都不太了解迅雷云盘怎么开倍速,因此呢,今天小编就来为大家分享迅雷免费加速的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录迅雷云盘怎么开倍速手机迅雷免费加速不见了我在

2024年6月29日 15:10

4399小游戏直接玩(怎么才能在手机上玩4399小游戏)

4399小游戏直接玩(怎么才能在手机上玩4399小游戏)

大家好,关于4399小游戏直接玩很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于怎么才能在手机上玩4399小游戏的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2024年4月6日 14:30

天天酷跑多人挂最新版(谁有天天酷跑多人对战辅助软件)

天天酷跑多人挂最新版(谁有天天酷跑多人对战辅助软件)

大家好,关于天天酷跑多人挂最新版很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于谁有天天酷跑多人对战辅助软件的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文

2024年6月10日 15:44

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索